Swagger:将枚举定义重用为查询参数
我想使用Swagger:将枚举定义重用为查询参数,swagger,swagger-2.0,Swagger,Swagger 2.0,我想使用定义中定义的枚举作为查询字符串中参数定义的一部分 我正在Swagger 2.0规范文件的定义部分定义Swagger枚举 OperationType: type: string enum: - registration - renewal 我可以在其他定义中创建对它的引用: Operation: type: object properties: name: type: string type: $ref: '#/defini
定义中定义的枚举作为查询字符串中参数定义的一部分
我正在Swagger 2.0规范文件的定义部分定义Swagger枚举
OperationType:
type: string
enum:
- registration
- renewal
我可以在其他定义中创建对它的引用:
Operation:
type: object
properties:
name:
type: string
type:
$ref: '#/definitions/OperationType'
当参数为in:body
时,我可以使用schema
标记对其进行引用,但当参数为in:query
- name: operation
in: body
description: description
schema:
$ref: '#/definitions/OperationType'
我尝试删除模式:
并在枚举:
中创建一个引用,但无法使其工作。对于Swagger 2.0,我们限制了对除主体参数以外的任何对象使用模型定义的能力。定义
部分用于定义模式,模式也可用于定义非对象。但是,这些定义只能在使用schema
关键字的情况下访问。如前所述,schema
对于非主体参数不可访问,因此不能由查询或路径参数使用,从而限制了重用这些定义的能力
有人要求在规范的未来版本中处理它。这在OpenAPI 3.0中是可能的。所有参数现在都使用一个
模式
,并且可以扩展为$ref
模式
openapi:3.0.0
...
路径:
/一些东西:
获取:
参数:
-in:查询
名称:行动
模式:
$ref:“#/components/schemas/OperationType”
...
组件:
模式:
操作类型:
类型:字符串
枚举:
-登记
-更新
没有,但看起来在3.0中这是可能的。@Ron很期待。看起来真的很有用。我也有同样的问题。这有解决办法吗?我希望能够跨参数重用枚举定义。行为将在规范的下一版本中更改。