我在 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 参数都引用查询参数,而这个是路径参数。
关于如何解决这个问题有什么想法吗?
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