如何在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 } 

正如你所看到的,有一个查询参数叫做sampletypes的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