设计一个 API OpenAPI 3.0 - header 参数内容类型被忽略
Designing an API OpenAPI 3.0 - header parameter Content type are ignored
这个问题实际上是之前一个问题的后续问题 here
我想做的是强迫我的 api 的消费者 ONLY 发送 Content-Type作为 application/json
我的环境是:Mule 4.4 运行时(预置,没有使用 Anypoint 平台)
我在 OAS 3.0 中定义规范并使用 swagger 编辑器创建和编辑规范
我有以下定义:
/user:
post:
parameters:
- in: header
name: Content-Type
required: true
schema:
type: string
enum:
- application/json
我可以看到一个警告:
Header Parameters named 'Content-type' are ignored. The values for the 'Content-Type' header are defined by 'RequestBody.content.media-type
尝试谷歌搜索并找到一个 link here 但它只是简单地说明:
Make sure that you do not use the restricted values as header parameter names.
这真的没有解释如何执行此标准?
附带说明 - 如果我在设计中心(Anypoint 平台)复制粘贴相同的 api 规范,它不会抱怨并且事实上 mule 运行时正确验证并拒绝没有 application/json 在 content-type
谢谢
在 OpenAPI(甚至 RAML)中,我们不会将 Content-Type header 视为通用 HTTP header。这适用于 requests and responses。作为规范的一部分,您可以为每个请求定义媒体类型。该实现将负责正确处理它并验证在执行时使用了正确的 Content-Type header。由于您正在尝试手动设置它,因此实施会给您一个预期的警告。
示例:
paths:
/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX:
post:
requestBody:
content:
application/json:
这个问题实际上是之前一个问题的后续问题 here
我想做的是强迫我的 api 的消费者 ONLY 发送 Content-Type作为 application/json
我的环境是:Mule 4.4 运行时(预置,没有使用 Anypoint 平台)
我在 OAS 3.0 中定义规范并使用 swagger 编辑器创建和编辑规范
我有以下定义:
/user:
post:
parameters:
- in: header
name: Content-Type
required: true
schema:
type: string
enum:
- application/json
我可以看到一个警告:
Header Parameters named 'Content-type' are ignored. The values for the 'Content-Type' header are defined by 'RequestBody.content.media-type
尝试谷歌搜索并找到一个 link here 但它只是简单地说明:
Make sure that you do not use the restricted values as header parameter names.
这真的没有解释如何执行此标准?
附带说明 - 如果我在设计中心(Anypoint 平台)复制粘贴相同的 api 规范,它不会抱怨并且事实上 mule 运行时正确验证并拒绝没有 application/json 在 content-type
谢谢
在 OpenAPI(甚至 RAML)中,我们不会将 Content-Type header 视为通用 HTTP header。这适用于 requests and responses。作为规范的一部分,您可以为每个请求定义媒体类型。该实现将负责正确处理它并验证在执行时使用了正确的 Content-Type header。由于您正在尝试手动设置它,因此实施会给您一个预期的警告。
示例:
paths:
/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX:
post:
requestBody:
content:
application/json: