type– Uma URI que identifica o erro no catálogo de erros da Lerian, construída comohttps://errors.lerian.studio/v1/<code>. Esta URI repetecode, então ela não separa dois status que compartilham um código.title– O texto do status HTTP (por exemplo,Not Found).status– O código de status HTTP.detail– Uma explicação legível por humanos desta ocorrência. Um500e umSILOC-0023substituem o texto porinternal error, para que a causa interna permaneça dentro do trilho. O texto varia por ocorrência, e um403pode trazer a mensagem que o serviço de autorização reportou. Não baseie sua lógica nele.code– O código estável e legível por máquina (SILOC-NNNN). Baseie sua lógica no par destatusecode, não emcodeisoladamente. Um código pode aparecer sob mais de um status, e cada status precisa de uma ação diferente. Por exemplo,SILOC-0022é um 400 para um corpo que não é JSON válido e um 422 para um valor que viola uma regra de domínio. Uma requisição que falha na validação de schema trazSILOC-0022, eerrorsnomeia os campos com falha.errors– Uma lista opcional de detalhes em nível de campo, cada um com olocationque leu, ummessagee ovalueencontrado ali. Uma recusa do gate de autorização ou de idempotência traz, em vez disso, uma listaviolationsvazia.
400, 413, 415: Corpo da requisição recusado
401: Chamador não identificado
403: Chamador recusado
404: Não encontrado
409: Conflitos
422: Erros de validação
500: Erros do servidor
503: Trilho não pode responder
Um 503 que traz
SILOC-0002 não indica que o comando foi rejeitado. O trilho responde com ele tanto antes de o comando executar quanto depois de ele confirmar, então o comando já pode ter tido efeito. Concilie a requisição original primeiro. Quando você repetir, envie o mesmo X-Idempotency, e nunca repita sob um novo.
