对 swagger 文档的枚举支持
Enum support for swagger doc
我对 Swagger 对 OpenAPI3.0 的枚举支持感到有点困惑。我的意思是 swagger doc 有了新的改进,支持可重复使用的枚举
记录在这里:
https://swagger.io/docs/specification/data-models/enums/
其中使用 $ref 说明对可重用枚举的支持。然而,当我 post 我的 swagger.json 大摇大摆时 editor/validator 看起来像下面的
in: query
name: prop-name
description: something
type: array
items:
$ref: '#/definitions/mytype'
进一步定义如下:
mytype:
enum:
- Item1
type: string
Swagger 编辑器抛出错误并显示 should NOT have additional properties
additionalProperty: $ref
现在,这在加载 swagger 页面和实现功能时不是问题,但在使用 swagger-gen 和使用它生成客户端时却是问题。 swagger-gen CLI 也会抛出同样的错误,导致我们现在能够正确地为这个页面生成一个客户端。
这个swagger.json有什么问题吗?我可以提供任何额外信息来阐明这个问题吗?
在 OpenAPI 2.0 中,数组参数模式不能使用 $ref
。您必须定义 enum
inline:
- in: query
name: prop-name
description: something
type: array
items:
type: string
enum:
- Item1
我对 Swagger 对 OpenAPI3.0 的枚举支持感到有点困惑。我的意思是 swagger doc 有了新的改进,支持可重复使用的枚举 记录在这里:
https://swagger.io/docs/specification/data-models/enums/
其中使用 $ref 说明对可重用枚举的支持。然而,当我 post 我的 swagger.json 大摇大摆时 editor/validator 看起来像下面的
in: query
name: prop-name
description: something
type: array
items:
$ref: '#/definitions/mytype'
进一步定义如下:
mytype:
enum:
- Item1
type: string
Swagger 编辑器抛出错误并显示 should NOT have additional properties
additionalProperty: $ref
现在,这在加载 swagger 页面和实现功能时不是问题,但在使用 swagger-gen 和使用它生成客户端时却是问题。 swagger-gen CLI 也会抛出同样的错误,导致我们现在能够正确地为这个页面生成一个客户端。
这个swagger.json有什么问题吗?我可以提供任何额外信息来阐明这个问题吗?
在 OpenAPI 2.0 中,数组参数模式不能使用 $ref
。您必须定义 enum
inline:
- in: query
name: prop-name
description: something
type: array
items:
type: string
enum:
- Item1