Ограничить количество одного и того же параметра запроса весной - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть запрос GET, например

/api/v1/data?name=aaa&name=bbb&name=cccc&name=dd&name....

Я хочу ограничить количество параметров 'name', оно должно быть не более 100 (настраивается в файле свойств)

Здесьмой контроллер

public Data getDataByNames(@RequestParam(value = "name") List<String> names) {
    return userService.getDataByNames(names);
}

Как я могу это сделать?Спасибо

Обновление: да, я могу проверить на служебном уровне: если (names.size () <100) {...}, но это не профессионально </p>

1 Ответ

0 голосов
/ 05 декабря 2018

Если вам не нужно максимальное количество элементов для настройки, вы можете использовать аннотацию @Size.Шаг 1. Определите оболочку для вашего запроса param

public class NameWrapper {

    @Size(max = 100)
    @NotEmpty
    private List<String> name;
    //getters and setters
}

Шаг 2. Добавьте упаковку в качестве параметра к вашему методу контроллера

public Data getDataByNames(@Valid NameWrapper nameWrapper) {

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

...