Q:

How to get Swagger UI's Parameter to be Dropdown menu instead of Text Input

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.

A:

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

A:

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.

A:

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;
    }

}

