Swagger ui - 从组件调用参数

Swagger ui - call parameters from components

我使用 swagger ui 和 swaggerapi/swagger-ui docker 图片。我尝试在其中一个路径中使用组件中定义的参数,但这不起作用。问题出在哪里?

在我的 index.yaml 文件中

components:
  ...
  parameters:
    Pagination:
    - in: query
      name: page
      schema:
        type: integer
        required: false
      description: The page to go to
    - in: query
      name: per_page
      schema:
        type: integer
        required: false
      description: The number of items per page
  ...

在我的路径文件中

parameters:
  $ref: '../index.yaml#/components/parameters/Pagination'

感谢您的帮助

OpenAPI 允许您 $ref 单独的参数,而不是一组参数。因此,如果您有多个通用参数,则需要在 components/parameters 部分中为它们创建单独的定义。此外,required 是参数属性而不是架构属性:

components:
  parameters:
    pageParam:          # <-----
      in: query
      name: page
      schema:
        type: integer
      required: false   # <-----
      description: The page to go to
    perPageParam:       # <-----
      in: query
      name: per_page
      schema:
        type: integer
      required: false   # <-----
      description: The number of items per page

然后,在您的路径文件中,使用:

parameters:
  - $ref: '../index.yaml#/components/parameters/pageParam'
  - $ref: '../index.yaml#/components/parameters/perPageParam'