将 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 模式转换为 python 类

10 django jsonschema

有没有办法将 JSON Schema 转换为 XSD? [关闭]

JSON Schema 到 GraphQL 模式转换器 [关闭]

Pojo 到 json 模式 v4,反之亦然,通过 maven

JsonSchema转JSON