java / expert
Snippet
Globales API-Response-Wrapping mit ResponseBodyAdvice
ResponseBodyAdvice ermöglicht es, den Response-Body abzufangen und zu ändern, nachdem eine Controller-Methode zurückkehrt, aber bevor sie serialisiert wird. Dies ist ideal, um sicherzustellen, dass alle API-Antworten einer konsistenten Envelope-Struktur folgen.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
@RestControllerAdvicepublic class UnifiedResponseWrapper implements ResponseBodyAdvice<Object> {@Overridepublic boolean supports(MethodParameter returnType, Class converterType) {return true;}@Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {if (body instanceof ApiResponse) return body;return new ApiResponse<>(body, "Success", HttpStatus.OK.value());}}
spring
Erklärung
1
@RestControllerAdvice
Registriert diese Komponente als globalen Interceptor für alle REST-Controller.
2
public boolean supports(...)
Bestimmt, welche Rückgabetypen oder Controller von diesem Advice verarbeitet werden sollen.
3
return new ApiResponse<>(body, ...);
Packt das rohe Objekt vor der JSON-Serialisierung in einen standardisierten Container ein.