Как добавить параметры в сервисный вызов для бэкэнда @RequestParam? - PullRequest
0 голосов
/ 01 апреля 2020

Если у меня есть что-то вроде

@GetMapping(value = "/list")
public ResponseEntity<MyDTO> findStatusPerEC(@RequestParam final List<Long> numbersEC) 

Как мне добавить числа E C в моем URL на веб-интерфейсе? Это параметр запроса?

Я знаю, что этот был для старого вызова, у которого не было параметров запроса, а данные были только числом (длинным)

return this.http.get<any>(URL_API + '/simulator/status/' + data);

Но теперь мне нужно отправить список длинных значений ... вы можете мне помочь?

1 Ответ

0 голосов
/ 01 апреля 2020
return this.http.get<any>(URL_API + '/simulator/status/' + data);

Поскольку вы упомянули data только тип long, то, что вы имеете в виду, когда делаете вышеупомянутый запрос, это PathVariable , он немного отличается от RequestParam .

  • Переменные пути имеют синтаксис: /simulator/status/:statusID, где statusID является динамическим c и извлекает значения из URI.
  • Параметры запроса имеют синтаксис: ?arg=val&arg2=val2 et c ... и извлекать значения из строки запроса запроса.

Решение

Чтобы ответить на ваш вопрос, передать массив в качестве параметров запроса, вы можете сделать это следующим образом:

?myparam=myValue1&myparam=myValue2&myparam=myValue3

Как вы можете видеть, выше myparam не меняется, и значения являются переменными, следовательно, данные в вашей структуре данных списка.

Так что когда Вы делаете запрос, он будет выглядеть примерно так:

Угловой / Javascript

return this.http.get<any>(URL_API + '/list' + '?myparam=myValue1&myparam=myValue2&myparam=myValue3');

Java

@GetMapping(value = "/list")
public ResponseEntity<MyDTO> findStatusPerEC(@RequestParam final List<Long> numbersEC) 

Надеюсь, это поможет.

...