它在这里说,不应将 OAS3 Yaml 文件中的 Accept 标头定义为参数,而应在responses.<code>.content.<media-type>
. 例子:
paths:
/employees:
get:
summary: Returns a list of employees.
responses:
'200': # Response
description: OK
content: # Response body
application/json: # Media type
schema: # Must-have
type: object # Data type
properties:
id:
type: integer
name:
type: string
fullTime:
type: boolean
example: # Sample data
id: 1
name: Jessica Right
fullTime: true
这让我想知道,因为如果我使用swagger-codegen基于该 OAS3 文件创建客户端,则在使用该客户端进行调用时,下面提到的字符串“content:”(在我的示例中application/json
)将按原样用作 Accept 标头。/employees
因此,识别正在使用我的 API(“userID”)的个人的以下代码不会产生任何影响:
DefaultApi api = new DefaultApi();
api.getApiClient().addDefaultHeader("Accept", "application/vnd.mycompany.userID.v1+json");
但作为我的 API 的所有者,我不想为每个用户提供一个招摇的文件。
为什么 OAS3 中的 Accept 标头在我认为应该只定义结果的媒体类型的响应部分中定义?