【问题标题】:JSON schema vs. Open API - Java supportJSON 模式与开放 API - Java 支持
【发布时间】:2022-02-22 06:03:40
【问题描述】:

我在这里遇到了这个 JSON 模式规范。

http://json-schema.org/understanding-json-schema/

我想知道它是否在某种程度上与 Open API 规范有关。

https://swagger.io/specification/

  1. 两种规格在多大程度上是标准规格?我知道 Open API 被广泛使用,但它真的被大公司采用为事实上的标准吗?

  2. 哪一个在Java中支持更好,并且是“更多”的标准?
    我的意思是例如根据哪种类型的 API 定义,您可以更轻松地生成客户端类以在客户端代码中使用?

  3. 假设您有一个需要使用的 API(例如通过 Java 客户端)。您会向 API 提供商提出什么要求,您会要求 JSON 模式 API 定义,还是基于 Open API 的 API 定义?

【问题讨论】:

    标签: java spring-boot microservices openapi jsonschema


    【解决方案1】:

    第一个链接是一个文档站点,讨论 JSON Schema,其 official site is herespecification is here。 JSON Schema 用于描述和验证各种数据结构(只要它们可以由 JSON 文档模型表示),但它在 HTTP 应用程序中具有广泛的用途。

    Swagger 现在称为 OpenAPI(升级到 3.x 版)。它的official site is herelatest specification is here。它在内部使用 JSON 模式作为其数据结构的一部分。它专门针对 HTTP 请求和响应的描述(有时是验证)。

    两个网站都有不同平台和语言的实现索引。

    【讨论】:

    • 谢谢。这是很好的信息,我大多已经知道了。但这如何回答我的三个问题?!
    【解决方案2】:

    两种规格在多大程度上是标准规格?我知道 Open API 被广泛使用,但它真的被大公司采用为事实上的标准吗?

    两者都被广泛使用,是的,它们是行业标准。

    哪一个在Java中有更好的支持并且是“更多”的标准?我的意思是例如根据哪种类型的 API 定义,您可以更轻松地生成客户端类以在客户端代码中使用?

    JSON 模式的主要目的不是指定 API。 OpenAPI 就是为此量身定做的。正如@Ether 所说,It uses JSON Schemas internally as part of its data structure. 如果您的目标是从 API 规范生成 Java,请选择 OpenAPI(假设您的 API 是 REST 或至少是 REST-ish)。

    假设您有一个需要使用的 API(例如通过 Java 客户端)。您会向 API 提供商提出什么要求,您会要求 JSON 模式 API 定义,还是基于 Open API 的 API 定义?

    OpenAPI,按照前面的解释。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2012-11-27
      • 1970-01-01
      • 2016-01-29
      • 2016-01-27
      相关资源
      最近更新 更多