Class UnifiedErrorResponseProcessor
java.lang.Object
br.com.xadm.comum.web.UnifiedErrorResponseProcessor
- All Implemented Interfaces:
io.micronaut.http.server.exceptions.response.ErrorResponseProcessor<ProblemDetail>
@Singleton
@Replaces(io.micronaut.http.server.exceptions.response.HateoasErrorResponseProcessor.class)
public class UnifiedErrorResponseProcessor
extends Object
implements io.micronaut.http.server.exceptions.response.ErrorResponseProcessor<ProblemDetail>
Renderiza todo corpo de erro da API no formato RFC 7807 (
ProblemDetail,
application/problem+json), substituindo o HateoasErrorResponseProcessor default
(que emitia {message, _links, _embedded}). É o padrão de erro da casa.
Atua no ponto único por onde o Micronaut renderiza erros gerados pelo framework:
HttpStatusException (e a hierarquia de exceção desta lib), falhas de validação
(Bean Validation), 404 de rota e erros de parse de corpo. O code (extensão 7807) deriva
do status HTTP (ex.: CONFLICT); o detail vem do primeiro erro do contexto.
O status HTTP já vem definido na resposta quando este processor roda — apenas formatamos o corpo, sem alterar o status (preserva os contratos testados de cada app).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionio.micronaut.http.MutableHttpResponse<ProblemDetail> processResponse(io.micronaut.http.server.exceptions.response.ErrorContext context, io.micronaut.http.MutableHttpResponse<?> response)
-
Constructor Details
-
UnifiedErrorResponseProcessor
public UnifiedErrorResponseProcessor()
-
-
Method Details
-
processResponse
public io.micronaut.http.MutableHttpResponse<ProblemDetail> processResponse(io.micronaut.http.server.exceptions.response.ErrorContext context, io.micronaut.http.MutableHttpResponse<?> response) - Specified by:
processResponsein interfaceio.micronaut.http.server.exceptions.response.ErrorResponseProcessor<ProblemDetail>
-