是否有为 json 模式指定版本的标准

And*_*nes 8 json jsonschema

我们的一个开发合作伙伴询问是否有一种方法可以在我们的 JSON Schema 定义中指定接口版本。没有"$version"密钥,因此是否有我们应该遵循的公认“标准”(我不能使用 $id,因为我们在$ref其他地方使用了's,因此文档将不再验证)。我们在 Draft-6,所以$comment本身不可用。

Validation-wise XML Spy 很高兴为"version"顶级添加一个密钥,所以我可以这样做,但如果有更常用的方法,我宁愿这样做。

Rel*_*ual 6

JSON Schema 没有标准的方法来做到这一点。允许向模式添加键,因为处理器将忽略未知的关键字。

我通常建议使用$idfor 版本控制。语义版本控制作为 $id 值的一部分。您将不得不更新您的参考资料,但随后您可以确保保持对 semver 的期望。

通常,大型项目会创建发布包,然后将一组模式存在于特定的 semver 下。例如人类细胞图谱:https : //schema.humancellatlas.org/a

也没有什么可以阻止您使用您在架构根级别选择的键创建一个新对象来包含您想要包含的有关架构的所有元信息。


小智 5

Snowplow 的SchemaVer模式语义版本控制是一个选项。