【问题标题】:How do I mark a property in JSON schema as deprecated?如何将 JSON 模式中的属性标记为已弃用?
【发布时间】:2018-01-26 12:15:11
【问题描述】:

我有一个定义 JSON 文档的 JSON 模式。有一个用例,我们想要弃用特定属性以支持引入新属性,并希望将旧属性标记为已弃用。 JSON 模式是否支持?

【问题讨论】:

    标签: json jsonschema json-schema-validator


    【解决方案1】:

    JSON Schema Validation 规范的Draft 2019-09,于 2019-09-16 发布,现为 defines deprecated 元数据注释:

    此关键字的值必须是布尔值。当多次出现 该关键字的适用于单个子实例,应用程序 应该考虑弃用实例位置(如果有) 出现指定一个真值。

    如果“deprecated”的值为 boolean true,则表示应用程序 应该避免使用声明的属性。它可能意味着财产 将来会被删除。

    包含“已弃用”且值为 true 的根架构表示 将来可能会删除所描述的整个资源。

    当“弃用”关键字应用于 如果“items”是单个,则通过“items”表示数组中的一个项目 架构,弃用涉及整个数组,而如果“项目” 是一组模式,弃用与对应的 [sic] 根据子模式位置的项目。

    省略此关键字与值为 false 的行为相同。

    【讨论】:

      【解决方案2】:

      目前没有,但计划在未来版本的规范中使用。 大意的讨论发生在https://github.com/json-schema-org/json-schema-spec/issues/74

      Henry 在Sep 2017 中将其添加到未来草案里程碑,但在我们着手解决之前仍有一些问题需要解决。

      更新,请参阅有关 2019-09 年发布草案的其他答案!

      【讨论】:

      • 感谢您的快速回复。我们可以安全地假设它将在下一个草案中可用吗?是否有发布新草稿的日期?
      • 它不会进入下一个草稿。对不起。我们最多有 6 个月的时间来发布每个草稿。有时我们会更快地瞄准,但我们有很多复杂的大问题要解决,而且几乎每个工作的人都生活在不同的时区,这很困难!即使它确实进入了下一个草案,图书馆也必须实施它。
      • 如果您打算对字段进行交错弃用,您可以将其放入并在您的 API 文档中提及它,并建议您的架构消费者寻找它......它只是不会成为标准。任何未知的关键字都会被忽略。
      猜你喜欢
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2010-09-22
      相关资源
      最近更新 更多