Как передать список в почтальоне в GET запросе и попасть в GetMapping - PullRequest
0 голосов
/ 13 июня 2018

Я отправляю список идентификаторов на контроллер, используя Почтальон, как это

localhost:8090/test/customer?id=1,2

И контроллер, как это

@GetMapping
public List<Customer> getCustomerListById(Optional<List<Integer>> customerId){

return getCustomerByIdService.getCustomerById(customerId.get());

}

И мой CustomerRepo, как это

public interface CustomerRepo extends CrudRepository<Customer , Integer>{

   public List<Customer> findByCustomerIdIn(List<Integer> customerId);

}

Но получаю ошибку вот так

{
"timestamp": 1528884327211,
"status": 500,
"error": "Internal Server Error",
"exception": "java.util.NoSuchElementException",
"message": "No value present",
"path": "/test/customer"
}

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

попробуйте что-то вроде ниже: -

get:

localhost:8090/test/customer?id=1,2

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

код:

@GetMapping("/test/customer/{id}")
public List<Customer> getCustomerListById(@PathVariable String id) List<String> id,
{
    ....
}
0 голосов
/ 13 июня 2018

Проверьте ваш запрос отладкой на chrome.При развертывании приложения в браузере вы увидите вкладку сети в инструменте разработчика.Оттуда выберите ваш запрос на получение и вставьте его почтальону

0 голосов
/ 13 июня 2018

В вашем URL имя параметра customer, но в методе вашего контроллера имя параметра customerId, они не совпадают

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