Параметры запроса для фильтрации - PullRequest
1 голос
/ 07 мая 2020

В моем приложении REST у меня есть метод GET, который обрабатывает запросы с параметрами разбивки на страницы (смещение и ограничение). А также он обрабатывает параметры фильтрации и сортировки, например, я могу установить фильтр, подобный «id eq 5», и сортировку, подобный «name des c». Но параметр для фильтра - это просто параметр строки запроса, а для запроса на создание с двумя фильтрами, например «id eq 5, size gt 10». Могу ли я обрабатывать запрос с двумя параметрами фильтра как двумя независимыми параметрами запроса? И да, я могу просто добавить 2 @RequestParam для 2 независимых параметров в моем методе. А что, если есть возможность фильтровать запрос по 10-15 параметрам? Означает ли это, что я должен установить 10-15 параметров в методе с @RequestParam(required = false) или есть более удобный способ справиться с этим?

Таким образом, я хотел бы иметь что-то вроде host/filterkey1[operator]=value1&filterkey2[operator]=value2, и прямо сейчас у меня есть это: host/filter=filterkey1[operator]value1,%filterkey2[operator]value2

1 Ответ

0 голосов
/ 07 мая 2020

Вы можете аннотировать карту с помощью @RequestParam:

@RequestParam Map<String, String> filters

Согласно docs :

Если параметр метода - Map или MultiValueMap и имя параметра не указано, тогда параметр карты заполняется всеми именами и значениями параметров запроса.

...