首页 > 解决方案 > OAS3.0 是否支持在组件中定义头参数?

问题描述

我有一个 API yaml 文件包含 3 个 API,并且所有 API 都需要具有相同定义的标头参数。我会知道 OAS 3.0 是否支持在组件中定义相同的标头参数并使用 $ref

/service1:
  /post:
    post:
      **parameters:
        - in: header
          name: X-partner**

/service2:
  /post:
    post:
      **parameters:
        - in: header
          name: X-partner**

/service3:
  /post:
    post:
      **parameters:
        - in: header
          name: X-partner**

如何在组件中定义 X-partner,这样我就不需要每次都复制粘贴?谢谢

标签: swagger

解决方案


是的,您可以在全局components/parameters部分定义可重用的标头参数(和其他参数类型)并使用$ref.

openapi: 3.0.2
...

components:
  parameters:
    X-partner:
      in: header
      name: X-partner
      schema:
        type: string
      required: true

paths:
  /service1:
    post:
      parameters:
        - $ref: '#/components/parameters/X-partner'

推荐阅读