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



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

考虑到 HTTP 的工作方式,如果我使用 Accept 标头请求正确的内容类型,我的服务器可以适当地响应,这对我来说是有意义的。

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

我想我可能可以使用application/openapi+jsonapplication/openapi+yaml,但我在实际规范中看不到任何关于它的内容。

我不确定我是否真的想使用Accept标头来区分这种差异,但无论如何我当然希望使用正确的Content-Type标头进行响应。

OpenAPI 倡议的技术指导委员会 (TSC( 批准了以下媒体类型:

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

最新更新