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 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:
      processResponse in interface io.micronaut.http.server.exceptions.response.ErrorResponseProcessor<ProblemDetail>