我正在使用swagger来显示我的RESTApi,API的一个参数将字符串作为输入并将其转换为枚举值。有没有办法在Swagger UI上显示下拉菜单,而不是文本输入字段,以便用户只能选择枚举值中的字符串值?
xcitsw881#
你可以使用下面的swagger代码显示下拉列表。你必须使用enum。例如,如果你想输入性别,那么可以有三个可能的值
-name: "gender" in: "query" type: "string" enum: [ "male", "female", "other"] description: "Enter user gender here." required: true
wz1wpwve2#
关键是在@ApiParam注解中使用allowableValues。显示结果的演示:http://petstore.swagger.io/#!/pet/findPetsByStatus检查pet/findByStatus,它不是一个下拉菜单,但输入是有限的,在多选框。
@ApiParam
allowableValues
pet/findByStatus
h79rfbju3#
您可以直接使用枚举代替String参数作为API参数。
@RequestMapping(value = "/test", method = RequestMethod.POST) public void test(EnumTest enum) { // body }
EnumTest.java
public enum EnumTest { One("One"), Two("Two"); private String str; EnumTest(String str){ this.str = str; } public String getStr() { return str; }
}
fxnxkyjh4#
上面的解决方案对我来说不起作用。在Swagger中添加下拉列表的最简单方法是更新swagger.json文件。
"parameters": [ { "name": "status", "in": "query", "type": "string", "default": "available", "enum": [ "active", "inactive", "available" ], "required": true } ],
注意:我使用的是swagger版本2.0
4条答案
按热度按时间xcitsw881#
你可以使用下面的swagger代码显示下拉列表。你必须使用enum。例如,如果你想输入性别,那么可以有三个可能的值
wz1wpwve2#
关键是在
@ApiParam
注解中使用allowableValues
。显示结果的演示:
http://petstore.swagger.io/#!/pet/findPetsByStatus
检查
pet/findByStatus
,它不是一个下拉菜单,但输入是有限的,在多选框。h79rfbju3#
您可以直接使用枚举代替String参数作为API参数。
EnumTest.java
}
fxnxkyjh4#
上面的解决方案对我来说不起作用。在Swagger中添加下拉列表的最简单方法是更新swagger.json文件。
注意:我使用的是swagger版本2.0