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

#java #rest #jersey #swagger

#java #отдых #джерси #развязность

Вопрос:

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

Ответ №1:

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

  • мужчина, женщина, другое
 -name: "gender"
          in: "query"
          type: "string"
          enum: [ "male", "female", "other"]
          description: "Enter user gender here."
          required: true
 

Комментарии:

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

Ответ №2:

Ключ должен использоваться allowableValues в @ApiParam аннотации.

Демонстрация, показывающая результат:

http://petstore.swagger.io /#!/домашнее животное/findPetsByStatus

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

Комментарии:

1. К сожалению, эти ссылки теперь мертвы.

2. к сожалению, в openapi такой альтернативы нет.

Ответ №3:

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

}

Комментарии:

1. Не создает выпадающее меню в пользовательском интерфейсе swagger…

2. @DavidS, какую версию swagger вы используете?