OpenAPI 模式的媒体类型是什么?

What is the media type of an OpenAPI schema?

每当搜索此内容时,我都会找到有关如何指定架构定义的资源的媒体类型的资源,但我看不到有关架构本身的实际媒体类型的答案。

考虑到 HTTP 的工作方式,如果我使用 Accept header 请求正确的内容类型,我的服务器可以适当地响应。

因此,如果我使用 Accept: application/json 请求 /products,我将获得 JSON 格式的产品,但如果我请求 openapi-whatever,我将获得 OpenAPI 模式。

认为我可能会使用application/openapi+jsonapplication/openapi+yaml,但我在实际中看不到任何相关信息specification.

我不确定我是否真的想使用接受 header 来解决这个差异,但我当然想用正确的 Content-Type header案例.

OpenAPI Initiative 的技术指导委员会 (TSC) approved 以下媒体类型:

application/vnd.oai.openapi      (YAML variant)
application/vnd.oai.openapi+json (JSON only variant)

带有可选的 version 参数:

application/vnd.oai.openapi;version=2.0

但是,这些媒体类型尚未在 IANA 中注册。

这似乎较新(2021 年 9 月):

  • application/openapi+yaml
  • application/openapi+json

https://www.ietf.org/archive/id/draft-polli-rest-api-mediatypes-00.html