我的方法抛出异常:
@GetMapping(value = "/orders/{email}")
private List<Order> ordersByEmail(@PathVariable String email) {
List<Order> list = restTemplate.exchange(
"http://localhost:8082/api/v1/orders/email/{email}",
HttpMethod.GET,
new HttpEntity<>(email),
new ParameterizedTypeReference<List<Order>>() {
}).getBody();
}
请求url方法:
@ApiOperation("Find orders by email")
@GetMapping(value = "/email/{email}")
public List<Order> findOrdersByEmail(@PathVariable String email) {
return orderService.findByEmail(email);
}
卷曲:
curl -X GET "http://localhost:8084/api/v1/processor/orders/{email}?email=string" -H "accept: */*"
请求网址:
http://localhost:8084/api/v1/processor/orders/{email}?email=string
大摇大摆的响应:
Error:
Response body
Download
{
"timestamp": "2019-01-04T00:27:34.059+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Not enough variable values available to expand 'email'",
"path": "/api/v1/processor/orders/%7Bemail%7D"
}
Response headers
connection: close
content-type: application/json;charset=UTF-8
date: Fri, 04 Jan 2019 00:27:34 GMT
transfer-encoding: chunked
答案 0 :(得分:0)
您的问题出在{email}。
@GetMapping(value = "/orders/{email}")
private List<Order> ordersByEmail(@PathVariable String email) {
通过指定{email}和PathVariable,这意味着您的控制器将在/ orders /之后使用该变量并将其分配给email。
请尝试使用http://localhost:8084/api/v1/processor/orders/string
和curl -X GET "http://localhost:8084/api/v1/processor/orders/string" -H "accept: /"
。您无需在网址中明确输入{email}