我对Swagger对OpenAPI3.0的枚举支持有点困惑。我想说的是,在swagger文档中已经有了新的改进,支持可重用的枚举,就像这里记录的那样。
https:/swagger.iodocsspecificationdata-modelsenums)。
其中使用了$ref来支持可重用的枚举,但是当我把我的swagger.json发布到swagger editorvalidator中时,它看起来像下面这样。然而,当我把我的swagger.json发布到swagger editorvalidator上时,它看起来像下面的样子
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
内联。
- in: query
name: prop-name
description: something
type: array
items:
type: string
enum:
- Item1