如何在GET请求中传递postman中的列表并进入GetMapping

时间:2018-06-13 10:06:58

标签: java spring-boot postman

我使用Postman发送一个id列表到控制器

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 :(得分:1)

在您的网址中,参数的名称为customer,但在您的控制器方法中,参数名称为customerId,它们不相同

答案 1 :(得分:0)

尝试类似下面的事情: -

得到:

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

一旦你得到逗号分隔的id,你就可以拆分它们并做你需要做的事情。

代码:

@GetMapping("/test/customer/{id}")
public List<Customer> getCustomerListById(@PathVariable String id) List<String> id,
{
    ....
}

答案 2 :(得分:0)

通过调试chrome检查您的请求。 在浏览器上部署应用程序时,您将在Developer's工具中看到网络选项卡。 从那里选择你的Get请求并将其粘贴到Postman