#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 вы используете?