После включения управления версиями API вы можете начать сопоставлять запросы с
версиями. Атрибут версии @RequestMapping поддерживает
следующее:
Нет значения — соответствует любой версии.
Фиксированная версия ("1.2") — соответствует только заданной версии.
Базовая версия ("1.2+") — соответствует данной версии и выше
Проверьте подключенный контроллер и файл свойств.
SampleController.java
Код: Выделить всё
package com.example;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/{version}/data")
public class SampleController {
@GetMapping
public String unversioned() {
return "unversioned";
}
@GetMapping(version = "v1.0.0")
public String version1() {
return "version 1";
}
}
Код: Выделить всё
trace = true
spring.mvc.apiversion.use.path-segment = 1
// added this just to explain the behaviour
spring.mvc.apiversion.supported = 100, 200
Поэтому я ожидаю, что приведенные ниже запросы должны вести себя следующим образом:
Запрос-1:
Код: Выделить всё
http://localhost:8080/api/v1/data
Запрос-2:
Код: Выделить всё
http://localhost:8080/api/v100/data
Ответ:
Код: Выделить всё
There was an unexpected error (type=Bad Request, status=400).Соответствует:
- --> следует считать это лучшим соответствием
Код: Выделить всё
{GET [/api/{version}/data]} - --> это не лучшее совпадение, но платформа считает его лучшим.
Код: Выделить всё
{GET [/api/{version}/data], version [v1.0.0]}
Код: Выделить всё
2025-12-29T16:34:36.750+05:30 TRACE 88093 --- [spring-boot-api-versioning-101] [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : GET "/api/v100/data", parameters={}, headers={masked} in DispatcherServlet 'dispatcherServlet'
2025-12-29T16:34:36.752+05:30 TRACE 88093 --- [spring-boot-api-versioning-101] [nio-8080-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : 2 matching mappings: [{GET [/api/{version}/data], version [v1.0.0]}, {GET [/api/{version}/data]}]
2025-12-29T16:34:36.752+05:30 WARN 88093 --- [spring-boot-api-versioning-101] [nio-8080-exec-4] .w.s.m.a.ResponseStatusExceptionResolver : Resolved [org.springframework.web.accept.NotAcceptableApiVersionException: 400 BAD_REQUEST "Invalid API version: '100.0.0'."]


Подробнее здесь: https://stackoverflow.com/questions/798 ... as-expecte
Мобильная версия