openAPI yaml 文件中的路径参数无法识别

问题描述 投票:0回答:1

我在 openAPI 规范文件中遇到此代码问题。

  /members/status/{mstatus}:
get:
  tags:
    - Members
  summary: Get all members with the specified status
  parameters:
    - $ref: '#/components/parameters/filter'
    - $ref: '#/components/parameters/sort'
    - $ref: '#/components/parameters/group'
    - mstatus:
        in: path
        name: mstatus
        description: Define if current or expired members are to be selected.  For expired, use the filter parameter to define when the membership expired
        schema:
          type: string
          enum: [ current, expired ]
          example: expired # Select members with expired membership

我没有在 Swgger Preview 或 redoc 中看到任何标记的错误,但该参数未在它们生成的文档中列出。 Swagger Preview 仅显示 () 参数名称,而 redoc 显示任何类型但无参数名称 Swagger Hub 根本不列出它。

我尝试将 mstatus 定义为 glbal 参数并从路径引用它,但出现了同样的问题,所以我认为参数定义中一定有问题。

另一种可能性是所有其他 $ref 参数都引用查询参数,而这个是路径参数。

关于如何解决这个问题有什么想法吗?

php openapi
1个回答
0
投票

OpenAPI 规范中如何定义 mstatus 参数。路径参数必须使用特定的结构来定义,并且您当前的定义错误地将参数详细信息嵌套在 mstatus 键下,这导致工具无法正确解释它。 纠正定义

更正了 OpenAPI 路径定义:

/members/status/{mstatus}:
  get:
    tags:
      - Members
    summary: Get all members with the specified status
    parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/group'
      - name: mstatus
        in: path
        required: true
        description: Define if current or expired members are to be selected. For expired, use the filter parameter to define when the membership expired.
        schema:
          type: string
          enum: [ current, expired ]
          example: expired
© www.soinside.com 2019 - 2024. All rights reserved.