Java JAX-RS @DefaultValue для списка - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть список значений перечисления в качестве параметра запроса. Я хочу иметь @DefaultValue (одно значение). Возможно ли иметь пустой список в качестве фактического параметра для перезаписи этого значения по умолчанию?

Причина этого вопроса в том, что Swagger (2.0) показывает список значений строки перечисления и дополнительную первую запись --. Я могу выбрать любое количество записей, включая пустой набор. Таким образом, запись -- не имеет особого смысла. Но выбор ничего или записи -- приводит к двум различным URL-адресам запроса, один без параметра и один с параметром с пустым значением.

Поэтому я ожидал, что запрос без параметра приведет к появлению списка со значением по умолчанию на стороне службы (как оно есть на самом деле). И я ожидал пустой список в другом случае, чтобы у меня был способ перезаписать значение по умолчанию также пустым списком. Но, похоже, дело не в этом.

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

Так что ответ на мой первый вопрос, похоже, no.

Итак, второй вопрос: В чем причина или использование записи -- в списке в интерфейсе Swagger?

1 Ответ

0 голосов
/ 07 сентября 2018

Для задачи № 1 вы можете попробовать что-то вроде этого:

@GET
public Response getList(@QueryParam("enumList") @DefaultValue("#{T(java.util.Collections).emptyList()}") List<EnumType> enumList) {

}
...