将 jsonschema 转换为 Django REST 序列化器的工具?
Posted
技术标签:
【中文标题】将 jsonschema 转换为 Django REST 序列化器的工具?【英文标题】:tools to convert jsonschema into Django REST serializisers? 【发布时间】:2015-03-26 12:32:42 【问题描述】:我写了一个 json-schema 来验证我的 API 的 POST 请求附带的 json。不,我需要反序列化这个 json。
当我开始构建嵌套的serializers 结构时,我注意到过程非常相似。所以我的问题是:我已经编写好的 json-schema 可以帮助反序列化过程吗?
【问题讨论】:
django-rest-framework 序列化程序已经通过.is_valid()
方法验证了传入的数据。为什么需要 json-schema?
假设这只是我的偏好。 Json-schema 可以发布并用作数据交换格式的明确标准,我们可以在代码中编写验证器时提供给数据生产者
也许Json Schema Toolkit 会有所帮助?
【参考方案1】:
[更新] 我在下面链接的博客文章已经过时了。相反,我已经实现了一个使用 JSONSchema 验证和 DRF 的现代示例,您可以在此答案 here 上看到它。
在我偶然发现您的问题之前,我发现了 this article,它演示了如何(以及可能何时)将 JSONSchema 与 Django REST 框架一起使用。
Django Rest Framework 与模型很好地集成以提供开箱即用的验证,并且 ModelSerializers 允许进一步细粒度的自定义验证。但是,如果您不使用模型作为端点的资源,那么复杂数据结构的自定义验证所需的代码可能会变得繁琐。
如果存在高度嵌套的数据结构,则可以使用具有嵌套序列化器的序列化器,该序列化器也具有嵌套序列化器,依此类推——或者可以使用 JSON 模式和自定义 JSON 解析器。
使用 JSON 模式生成工具还可以快速获得成功:使用已知具有正确结构的数据生成有效 JSON 结构的规范“模式”。这篇文章将使用 Django Rest Framework 进行 JSON 模式验证。
【讨论】:
以上是关于将 jsonschema 转换为 Django REST 序列化器的工具?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法将 JSON Schema 转换为 XSD? [关闭]
JSON Schema 到 GraphQL 模式转换器 [关闭]