0 Tage Serie
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
@RestControllerAdvice
public class UnifiedResponseWrapper implements ResponseBodyAdvice<Object> {
@Override
public boolean supports(MethodParameter returnType, Class converterType) {
return true;
}
@Override
public 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.