Как сделать параметр пользовательского интерфейса Swagger раскрывающимся меню вместо ввода текста

Я использую swagger для отображения моего RESTApi, один параметр API принимает строку в качестве входных данных и преобразует ее в значение перечисления. Есть ли способ отобразить раскрывающееся меню в пользовательском интерфейсе Swagger вместо поля ввода текста, чтобы пользователи могли выбирать только строковые значения в значении перечисления.


person mirage1s7    schedule 25.06.2014    source источник


Ответы (3)


Ключ заключается в использовании allowableValues < / a> в аннотации @ApiParam.

Демо, показывающее результат:

http://petstore.swagger.io/#!/pet/findPetsByStatus

Обратите внимание на pet/findByStatus, это не раскрывающийся список, но ввод ограничен в поле с множественным выбором.

person localhost    schedule 30.10.2014
comment
К сожалению, эти ссылки теперь мертвы. - person aradil; 14.01.2016

вы можете отобразить раскрывающийся список, используя следующий код чванства. Вы должны использовать enum. например если вы хотите использовать пол в качестве входных данных, тогда может быть три возможных значения

  • мужчина, женщина, другое
-name: "gender"
          in: "query"
          type: "string"
          enum: [ "male", "female", "other"]
          description: "Enter user gender here."
          required: true
person Kundan    schedule 24.03.2016
comment
Как сделать так, чтобы ключ пользовательского интерфейса Swagger отображался в раскрывающемся меню вместо ввода текста - person Vinod Kumar Marupu; 25.08.2017

Вы можете напрямую использовать enum вместо параметра 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;
    }

}

person Sagar Vaghela    schedule 04.08.2017