Sobald die API-Versionierung aktiviert ist, können Sie damit beginnen, Anforderungen mit
Versionen zuzuordnen. Das @RequestMapping-Versionsattribut unterstützt Folgendes:
Kein Wert – stimmt mit jeder Version überein
Feste Version („1.2“) – stimmt nur mit der angegebenen Version überein
Basisversion („1.2+“) – stimmt mit der angegebenen Version und höher überein
Überprüfen Sie die angeschlossener Controller und die Eigenschaftendatei.
SampleController.java
Code: Select all
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";
}
}
Code: Select all
trace = true
spring.mvc.apiversion.use.path-segment = 1
// added this just to explain the behaviour
spring.mvc.apiversion.supported = 100, 200
Ich erwarte daher, dass sich die folgenden Anfragen wie folgt verhalten:
Anfrage-1:
Code: Select all
http://localhost:8080/api/v1/data
Request-2:
Code: Select all
http://localhost:8080/api/v100/data
Antwort:
Code: Select all
There was an unexpected error (type=Bad Request, status=400).Übereinstimmungen:
- --> sollte dies als beste Übereinstimmung betrachten
Code: Select all
{GET [/api/{version}/data]} - --> Dies ist nicht die beste Übereinstimmung, aber das Framework wählt dies als beste Übereinstimmung aus.
Code: Select all
{GET [/api/{version}/data], version [v1.0.0]}
Code: Select all
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'."]


Mobile version