Record Class ProblemDetail
- Record Components:
type- URI do tipo do problema (about:blankpor padrão).title- resumo legível do tipo de erro (ex.:Conflict).status- código HTTP (ex.:409).detail- mensagem específica desta ocorrência.code- código estável legível por máquina (ex.:CONFLICT,invalid_token).invalidParams- campos rejeitados (Bean Validation), ounullfora de validação.
application/problem+json) — o padrão
da casa para erros de API. Substitui o envelope {message, _links, _embedded} do
HateoasErrorResponseProcessor default do Micronaut: apoia-se no padrão IETF,
interoperável e tooling-friendly.
Campos 7807: type (URI; about:blank quando não há tipo específico),
title (resumo legível do status), status (código HTTP), detail
(mensagem específica). O code é uma extensão (membro custom permitido pelo 7807)
com o código estável legível por máquina (ex.: CONFLICT, invalid_token).
Serializa via micronaut-serde (serde build-time): o @Serdeable habilita o
serializer gerado em tempo de compilação — gerado dentro do jar desta lib.
O membro invalidParams (serializado como invalid-params — extensão do apêndice
RFC 7807/9457) lista os campos rejeitados nas falhas de Bean Validation; é null (e omitido
do JSON) em qualquer outro erro. A estratégia de nomes KebabCaseStrategy só afeta esse
membro composto — os demais são palavra única (kebab = identidade), então o contrato de wire dos
campos existentes não muda.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordUm campo rejeitado por Bean Validation, no membroinvalid-params. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionProblemDetail(String type, String title, int status, String detail, String code, List<ProblemDetail.InvalidParam> invalidParams) Creates an instance of aProblemDetailrecord class. -
Method Summary
Modifier and TypeMethodDescriptioncode()Returns the value of thecoderecord component.detail()Returns the value of thedetailrecord component.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.Returns the value of theinvalidParamsrecord component.static ProblemDetailConstrói umProblemDetaila partir do status, do código estável e do detalhe, com otitlederivado da razão do status.static ProblemDetailConstrói umProblemDetailcomtitleexplícito — usado quando a exceção (PortadoraDeProblema) carrega o título do tipo do problema (RFC 9457 §3.1.4).static ProblemDetailofValidacao(io.micronaut.http.HttpStatus status, String code, String detail, List<ProblemDetail.InvalidParam> invalidParams) Constrói umProblemDetailde falha de validação — com a lista de campos rejeitados no membroinvalid-params.intstatus()Returns the value of thestatusrecord component.title()Returns the value of thetitlerecord component.final StringtoString()Returns a string representation of this record class.type()Returns the value of thetyperecord component.
-
Field Details
-
CONTENT_TYPE
-
-
Constructor Details
-
ProblemDetail
public ProblemDetail(String type, String title, int status, String detail, String code, List<ProblemDetail.InvalidParam> invalidParams) Creates an instance of aProblemDetailrecord class.- Parameters:
type- the value for thetyperecord componenttitle- the value for thetitlerecord componentstatus- the value for thestatusrecord componentdetail- the value for thedetailrecord componentcode- the value for thecoderecord componentinvalidParams- the value for theinvalidParamsrecord component
-
-
Method Details
-
of
Constrói umProblemDetaila partir do status, do código estável e do detalhe, com otitlederivado da razão do status.- Parameters:
status- status HTTP.code- código estável legível por máquina.detail- mensagem específica.- Returns:
- o problem-detail montado (
type=about:blank,title=razão do status).
-
of
public static ProblemDetail of(io.micronaut.http.HttpStatus status, String code, String title, String detail) Constrói umProblemDetailcomtitleexplícito — usado quando a exceção (PortadoraDeProblema) carrega o título do tipo do problema (RFC 9457 §3.1.4).- Parameters:
status- status HTTP.code- código estável legível por máquina.title- título do tipo do problema.detail- mensagem específica da ocorrência.- Returns:
- o problem-detail montado (
type=about:blank).
-
ofValidacao
public static ProblemDetail ofValidacao(io.micronaut.http.HttpStatus status, String code, String detail, List<ProblemDetail.InvalidParam> invalidParams) Constrói umProblemDetailde falha de validação — com a lista de campos rejeitados no membroinvalid-params.titlederiva da razão do status.- Parameters:
status- status HTTP (tipicamenteBAD_REQUEST).code- código estável legível por máquina (uniforme, ex.:BAD_REQUEST).detail- mensagem específica da ocorrência.invalidParams- campos rejeitados (não-nulo).- Returns:
- o problem-detail montado com
invalid-params.
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
type
-
title
-
status
-
detail
-
code
-
invalidParams
Returns the value of theinvalidParamsrecord component.- Returns:
- the value of the
invalidParamsrecord component
-