I am using swagger to display my RESTApi, one parameter of an API takes string as input and convert it to enum value. Is there any way to display a drop-down menu on the Swagger UI instead of having a text input field so that users can only select the string values within the enum value.
you can display dropdown using following code of swagger. You have to use enum. e.g. if you want to take gender as input then there can be three possible values
- male, female, other
-name: "gender"
in: "query"
type: "string"
enum: [ "male", "female", "other"]
description: "Enter user gender here."
required: true
The key is to use allowableValues
in the @ApiParam
annotation.
The demo showing the result:
http://petstore.swagger.io/#!/pet/findPetsByStatus
Check out pet/findByStatus
, it's not a dropdown but input is limited in
the multi-select box.
You can directly use enum instead of String parameter as a API parameter.
@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;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With