每当搜索这个时,我都会找到有关如何指定架构定义的资源的媒体类型的资源,但我看不到关于架构本身的实际媒体类型的答案。
考虑到 HTTP 的工作方式,如果我使用 Accept 标头请求正确的内容类型,我的服务器可以适当地响应,这对我来说是有意义的。
因此,如果我使用Accept: application/json
请求/products
,我将获得 JSON 格式的产品,但如果我请求openapi-whatever
我将获得 OpenAPI 模式。
我想我可能可以使用application/openapi+json
或application/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