Правильный подход для RequestParam в контроллере REST - PullRequest
0 голосов
/ 09 января 2020

У меня есть контроллер REST, содержащий несколько конечных точек. Каждый метод контроллера принимает несколько RequestParams, число которых может варьироваться в зависимости от метода. Является ли хорошим подходом создание класса модели, который будет служить надмножеством всех RequestParams и для каждого метода использовать только те атрибуты, которые необходимы? Или я должен явно определить все параметры для каждого метода и не использовать класс Model?

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

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Способ передачи параметров в виде карты для метода HETP GET выглядит следующим образом:

@GetMapping("/detail")
public MyDto getMyDto(@RequestParam Map<String, String> queryParams) {
...
}

И в своем URL вы сделаете это:

http://myHost:8080/detail?param1=10&param2=Downing

В своем коде вы получит карту; {"param1":10, param2:"Downing"}

Для метода POST код на стороне сервера выглядит следующим образом:

@PostMapping("/detail")
public MyDto getMyDto(@RequestBody Map<String, String> queryParams) {
...
}

Разница в том, что аннотация @RequestParam заменяется на @RequestBody

0 голосов
/ 09 января 2020

Если вы собираетесь создать класс модели, вы можете сделать запрос как POST-запрос.

Есть и другой способ - передать все requestParam как Map.

Документация приведена ниже как передать карту как requestParam:

https://reversecoding.net/spring-mvc-requestparam-binding-request-parameters/

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