Spring Boot Rest - 如何接受多个headers
Spring Boot Rest - How to accept multiple headers
我正在使用 Spring Boot V2.2.2.RELEASE 并使用自定义 headers 进行 API 版本控制。我开发了这样的小端点:
@GetMapping(value = "/student/header", headers = {"X-API-VERSION=2", "X-API-VERSION=1"})
public StudentV1 headerV2() {
return new StudentV1("Bob Charlie");
}
当我点击 curl -X GET http://localhost:8080/student/header -H 'x-api-version: 1'
时,出现错误。
{
"timestamp": "2020-01-13T09:20:20.087+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/student/header"
}
如果我使用 headers = {"X-API-VERSION=2"}
,那么它可以工作,但是如果我使用 headers = {"X-API-VERSION=2", "X-API-VERSION=1"}
,那么事情就停止了。
@GetMapping(value = "/student/header", headers = {"X-API-VERSION=2"})
public StudentV1 headerV2() {
return new StudentV1("Bob Charlie");
}
using headers = {"X-API-VERSION=2", "X-API-VERSION=1"}
两个 header 都必须存在。
尝试为每个 header 使用一个映射,然后转发给您的服务实现。
@GetMapping(value = "/student/header", headers = {"X-API-VERSION=1"})
public StudentV1 headerV1() {
return serviceImpl.headerV1();
}
@GetMapping(value = "/student/header", headers = {"X-API-VERSION=2"})
public StudentV1 headerV2() {
return serviceImpl.headerV2();
}
我正在使用 Spring Boot V2.2.2.RELEASE 并使用自定义 headers 进行 API 版本控制。我开发了这样的小端点:
@GetMapping(value = "/student/header", headers = {"X-API-VERSION=2", "X-API-VERSION=1"})
public StudentV1 headerV2() {
return new StudentV1("Bob Charlie");
}
当我点击 curl -X GET http://localhost:8080/student/header -H 'x-api-version: 1'
时,出现错误。
{
"timestamp": "2020-01-13T09:20:20.087+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/student/header"
}
如果我使用 headers = {"X-API-VERSION=2"}
,那么它可以工作,但是如果我使用 headers = {"X-API-VERSION=2", "X-API-VERSION=1"}
,那么事情就停止了。
@GetMapping(value = "/student/header", headers = {"X-API-VERSION=2"})
public StudentV1 headerV2() {
return new StudentV1("Bob Charlie");
}
using headers = {"X-API-VERSION=2", "X-API-VERSION=1"}
两个 header 都必须存在。
尝试为每个 header 使用一个映射,然后转发给您的服务实现。
@GetMapping(value = "/student/header", headers = {"X-API-VERSION=1"})
public StudentV1 headerV1() {
return serviceImpl.headerV1();
}
@GetMapping(value = "/student/header", headers = {"X-API-VERSION=2"})
public StudentV1 headerV2() {
return serviceImpl.headerV2();
}