0 Tage Serie
java / expert
Snippet

Benutzerdefinierte API-Versionierung mit RequestCondition

Für komplexe API-Versionierung (z.B. über Header) ermöglicht die Implementierung von RequestCondition das Einklinken eigener Matching-Logik direkt in das RequestMappingHandlerMapping von Spring MVC.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ApiVersionCondition implements RequestCondition<ApiVersionCondition> {
private final String version;
@Override
public ApiVersionCondition getMatchingCondition(HttpServletRequest request) {
String header = request.getHeader("X-API-VERSION");
return version.equals(header) ? this : null;
}
@Override
public int compareTo(ApiVersionCondition other, HttpServletRequest request) {
return other.version.compareTo(this.version);
}
// combine method omitted for brevity
}
spring
Erklärung
1
getMatchingCondition(HttpServletRequest request)
Prüft, ob der aktuelle Request die Versionsanforderung basierend auf einem Header erfüllt.
2
compareTo(ApiVersionCondition other, HttpServletRequest request)
Bestimmt, welche Version Vorrang hat, wenn mehrere Mappings übereinstimmen.