0

在这里说,不应将 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 标头在我认为应该只定义结果的媒体类型的响应部分中定义?

4

0 回答 0