java / intermediate
Snippet
Standardisierte RFC 7807 Fehlerantworten mit ProblemDetail und ResponseEntityExceptionHandler
Spring 6 / Spring Boot 3 bietet native Unterstützung für RFC 7807 Problem Details. Das Erweitern von ResponseEntityExceptionHandler und die Rückgabe von ProblemDetail-Objekten erzeugt saubere, standardisierte JSON-Fehlerantworten für REST-Endpunkte.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@RestControllerAdvicepublic class GlobalApiExceptionHandler extends ResponseEntityExceptionHandler {@ExceptionHandler(ResourceNotFoundException.class)public ProblemDetail handleResourceNotFound(ResourceNotFoundException ex) {ProblemDetail problem = ProblemDetail.forStatusAndDetail(HttpStatus.NOT_FOUND,ex.getMessage());problem.setTitle("Resource Not Found");problem.setType(URI.create("https://api.example.com/errors/not-found"));problem.setProperty("timestamp", Instant.now());return problem;}}
spring
Erklärung
1
@RestControllerAdvice
Deklariert eine zentrale Ausnahmebehandlungskomponente, die für Controller in der gesamten Anwendung gilt.
2
ProblemDetail problem = ProblemDetail.forStatusAndDetail(
Instanziiert eine RFC-7807-konforme Datenstruktur mit HTTP-Statuscode und lesbarer Detailnachricht.
3
problem.setProperty("timestamp", Instant.now());
Fügt dem Fehler-JSON benutzerdefinierte Metadaten-Schlüssel hinzu, ohne eine eigene Wrapper-Klasse zu erfordern.