如何在Swagger 3.0中全局设置Accept标头?

时间:2019-01-11 11:43:53

标签: swagger swagger-ui openapi swagger-3.0

我通过SwaggerHub进行了新的OpenAPI设置。是否可以选择全局强制某个特定的Accept标头?

我已经在响应中设置了内容类型。

commitWork

通过curl请求插入不同的Accept标头时,将执行以下操作:

paths:
  /test-path:
     get:
       responses:
         '200':
           description: OK
           content:
             application/vnd.company.v1.0.0+json:

这很有意义,因为我们没有对此提供任何答复。

1 个答案:

答案 0 :(得分:1)

与具有global consumes and produces的OpenAPI / Swagger 2.0不同,OpenAPI 3.0要求在每个操作中分别定义请求和响应媒体类型。无法全局定义Content-Type或请求或响应。​​

但是,您可以$ref常见的响应定义(例如错误响应),以减少重复。

openapi: 3.0.2
...

paths:
  /foo:
    get:
      responses:
        '400':
          $ref: '#/components/responses/ErrorResponse'
  /bar:
    get:
      responses:
        '400':
          $ref: '#/components/responses/ErrorResponse'


components:
  responses:
    ErrorResponse:
      description: An error occurred
      content:
        application/vnd.error+json:
          schema:
            ...