问 题
是否有人能够在swaggger 2.0版的"模型"选项卡中定义可能的"枚举"值?示例: http://petstore.swagger.wordnik.com/#!/pet/ addpet 具有"status"属性的枚举选项,但该示例使用的是swagger 1.0版(根据json对象中定义的swagger版本)。我试图在版本2.0中实现相同但没有运气,不确定文档是否正确。
有关于此的任何提示吗?
解决方案
"enum"就像这样:
{
"in":"query",
"name":"sample",
"description":"具有枚举值的示例参数",
"type":"string",
"enum":["1","2"],
"required":true
}
如您所见,有一个名为 sample 的查询参数类型为string ,并有一个枚举说明两个可能的值。在这种情况下,示例声明参数是必需的,因此ui不会显示空值作为选项。
对于最小工作样本,请尝试:
{
"swagger":"2.0",
"info":{
" title":"title",
"description":"descriptor",
"version":"0.1"
},
"paths":{
" / sample":{
"post":{
"description":"sample",
"parameters":[
{
"in":"query ",
"name":"sample",
"description":"带有枚举值的示例参数",
"type":"string",
"enum ":[
"1",
"2"
],
"必需":true
}
],
"回复":{
"200":{
"description":"成功请求。"
}
}
}
}
}
}
要在本地测试它,您可以在javascript中声明一个变量(例如 spec ),并将其传递给swaggerui对象。 / p>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 参数将被忽略。
最终,输出如下所示:
我能够这样做,但是你可以在下面的图片上看到每个参数创建了下拉列表:
我想要实现的是很好的模型/模型模式选项卡,如下图所示,并为参数列出了可用的枚举。这是否可以在最新版本的swagger中使用: