Я думаю, что ваш путь в порядке, но если вы ищете другие подходы, вы можете направить свои версии с помощью RouterFunction
.Как то так:
@Bean
RouterFunction<ServerResponse> routerFunction() {
return RouterFunctions
.route(
GET("/your/path").and(headers(headers -> testVersion(headers, "1.0.0"))),
/* handler function 1.0.0 */)
.andRoute(
GET("/your/path").and(headers(headers -> testVersion(headers, "1.0.1"))),
/* handler function 1.0.1 */);
}
private boolean testVersion(ServerRequest.Headers headers, String version) {
return headers.header("API-Version")
.stream()
.anyMatch(headerValue -> Objects.equals(headerValue, version));
}