Retornos de HTTP
As APIs seguem um padrão de status em comum, ou seja, o comportamento de possíveis tratativas é igual para todos os projetos incluídos neste portal.
Sucesso - 2xx
Campo |
Mensagem |
Descrição |
Utilização |
200 |
OK |
Código genérico para cenários de sucesso. |
GET, PUT |
201 |
Created |
Cenário de criação de um recurso. |
POST, PUT |
202 |
Accepted |
Cenário de recurso aceito para processamento. |
POST, PUT |
204 |
No Content |
Cenário de exclusão de um recurso. |
DELETE |
Redirecionamento - 3xx
Campo |
Mensagem |
Descrição |
Utilização |
303 |
See Other |
Resposta do servidor instruindo ao cliente buscar o recurso requisitado em outra URI com uma requisição GET. |
PUT |
Alerta
Este código de retorno adiciona aos cabeçalhos de resposta o atributo location, que tem como função indicar o endereço de um recurso. A presença deste atributo significa que o recurso desejado se encontra no endereço descrito, para acessar o mesmo deve-se realizar um GET.
A implementação padrão mais comum de bibliotecas HTTPs e ferramentas de execução de requisições seguem automaticamente o redirecionamento. Esta prática pode levar a erros de fluxo, onde não fica explícito que o redirecionamento está sendo executado de forma automática.
Recomenda-se fortemente que desabilite a funcionalidade de redirecionamento automático e realize os tratamentos necessários de forma manual, a fim de evitar confusões durante o uso das API’s.
Erros de Client - 4xx
Campo |
Mensagem |
Descrição |
Utilização |
400 |
Bad request |
Erros relacionados à sintaxe do request enviado pelo client. Abaixo estão exemplos do que são considerados erros de sintaxe: Má formação do body do request. Formato do body do request incompatível com o que foi enviado no header Content-Type. |
Todos os verbos |
401 |
Unauthorized |
Falha de autorização do client (falta ou expiração do token). |
Todos os verbos |
403 |
Forbidden |
Falta de privilégios para acessar o recurso. Esses erros contemplam validações usando introspecção do token, como por exemplo, comparando um determinado role que deve estar presente na claim “role”. |
Todos os verbos |
404 |
Not Found |
Pode indicar duas situações distintas: Quando o backend não localizou o registro a partir do filtro especificado pelo client. Quando o servidor não possui a rota especificada na URL. |
GET, DELETE |
409 |
Conflict |
Indica que a solicitação atual conflitou com o recurso que está no servidor. |
PUT |
422 |
Unprocessable Entity |
A requisição está bem formada mas inabilitada para ser seguida devido a erros semânticos. Incompatibilidade do request frente ao que está definido no contrato da API. Especificamente em relação aos campos do body, são consideradas três informações: nome, tipo e obrigatoriedade do campo. |
Todos os verbos |
429 |
Too Many Requests |
Indica que o usuário enviou muitos pedidos em um determinado período de tempo. |
Todos os verbos |
Erros de Servidor - 5xx
Campo |
Mensagem |
Descrição |
Utilização |
500 |
Internal Server Error |
Erro genérico ao lado do servidor. Pode ser tanto a falha de código ao tratar o request, quanto alguma falha ligada à infraestrutura. |
Todos os verbos. |
502 |
Bad Gateway |
O API Gateway recebeu uma resposta inválida do backend. |
Todos os verbos |
503 |
Service Unavailable |
Indisponibilidade temporária do backend. |
Todos os verbos |
504 |
Gateway Timeout |
O API Gateway não recebeu o response do backend a tempo. |
Todos os verbos |