使用 JSON 架构对 Json 进行版本控制

Versioning Jsons with JSON Schema

提问人:Alicia Wentworth 提问时间:8/19/2023 更新时间:8/19/2023 访问量:42

问:

我开始为我们行业使用的一类部件编写 JSON 架构。我试图研究如何最好地根据模式为将来的 JSON 文件进行版本控制,但我找不到任何具体的实现。

将这一点联系起来的最简单方法是考虑车辆。我们正在定义车辆架构 (vehicles-v1.0.0.json)。在车辆内部,我们有 4 种不同的(现阶段)类型的车辆类型——汽车、SUV、卡车、摩托车)。我认为一旦航天工业得到改善,我们可能需要增加其他几个(也许比如火车、飞机、出租车)。我们想把它提升到 2.0 版。

如果当前写入的JSON文件遵循$id vehicles-v1.0.0,我们如何确保带有train,plain和taxi的文件被定义为f或vechicles-v2.0.0?

我有一些想法、建议和例子,但它们似乎都有点半途而废。据我所知,在我们的 JSON 文件本身(比如 toyota-suv.json,实现 vehicles-v1.0.0.json bmw-suv.json)中,根本没有指向 JSON 架构的链接。

  1. 在引用正在使用的架构的每个 JSON 文件的顶部使用属性$schema
  2. 使用具有_version{ $schema: <uri>, $version: "1.0.0" }
  3. 不要在-.json中使用任何东西,而是让解析器处理它。

到目前为止,关于如何完成的指导是什么?如何使用 JSON 架构对 JSON 文件进行版本控制?

同样不幸的是,我们的领域并不像车辆那么容易(丰田、宝马、奥迪等在他们生产的材料规格上有很小的变化,所以我们的模式有大约 20 个强制性属性,制造商在其他人的附加一个特定于他们领域的字段)。x-<company>-property

json jsonschema 语义版本控制

评论


答: 暂无答案