如何在swagger.io中定义枚举?
有没有人能够在swaggger 2.0版的Model选项卡中定义可能的“enum”值? 示例在这里: http : //petstore.swagger.wordnik.com/#!/pet/addPet有一个“状态”属性的枚举选项,但该示例使用swagger的版本1.0(根据JSON对象中定义的swagger版本)。 我试图在版本2.0中实现相同,但没有运气,不知道文件是正确的。
任何暗示呢?
“枚举”就像这样工作:
{ "in": "query", "name": "sample", "description": "a sample parameter with an enum value", "type": "string", "enum": [ "1", "2"], "required": true }
正如你所看到的,有一个查询参数叫做sample
types的string,并且有一个枚举来说明两个可能的值。 在这种情况下,示例状态参数是必需的,所以UI将不会显示空值作为选项。
对于一个最小的工作样品,试试这个:
{ "swagger": "2.0", "info": { "title": "title", "description": "descriptor", "version": "0.1" }, "paths": { "/sample": { "post": { "description": "sample", "parameters": [ { "in": "query", "name": "sample", "description": "a sample parameter with an enum value", "type": "string", "enum": [ "1", "2" ], "required": true } ], "responses": { "200": { "description": "Successful request." } } } } } }
为了在本地testing它,你可以在你的javascript中声明一个variables(例如spec
),并把它传递给SwaggerUi对象。
var spec = { ... }; window.swaggerUi = new SwaggerUi({ url: url, spec: spec, dom_id: "swagger-ui-container", supportedSubmitMethods: ['get', 'post', 'put', 'delete'], onComplete: function(swaggerApi, swaggerUi){ ...
在这种情况下, url
参数将被忽略。
最终,输出如下所示:
我能够做到这一点,但正如你可以在下面为每个参数所附的图像看到它创build下拉菜单:
我想要实现的是很好的Model / Model Schema选项卡,如下图所示,参数列出了可用的枚举。 这是可能的最新版本的Swagger:
用YAML语法更新:
in: query name: sample description: a sample parameter with an enum value type: string enum: - 1 - 2 required: true
这不是确切的答案,但它可能会为您工作,直到他们添加此function。
只需声明这样的属性
"MyObject":{ "properties":{ "MyEnum":{ "type":"Value1 or Value2 or Value3" } } }
您的ModelSchema将显示{}
,但模型将显示MyEnum(Value1 or Value2 or Value3, optional)
这应该工作:
{ "name": "bookingType", "in": "path", "type": "array", "items": { "enum": [ "packages", "accommodations" ] }, "description": "lorem ipsum" }
参考https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#itemsObject