A importância de manter um padrão de utilização dos códigos em uma API REST é crucial para garantir a qualidade e a confiabilidade dos serviços oferecidos. Os códigos de status HTTP são uma forma de informar ao cliente o resultado da solicitação feita à API, e manter um padrão ajuda a garantir que as respostas sejam entendidas de maneira consistente.
Uma boa prática é sempre retornar o código de status mais adequado para a situação. Por exemplo, se uma solicitação foi bem-sucedida, é recomendável retornar o código 200 (OK); se o recurso solicitado não foi encontrado, o código 404 (Not Found) é apropriado. Usar o código correto ajuda a garantir que o cliente saiba exatamente o que está acontecendo e possa tomar medidas adequadas.
Ao se utilizar uma API, é preciso sempre verificar o código de status retornado, e tomar as ações adequadas para cada código. Isso evita problemas de funcionamento e garante a integridade da sua aplicação.
Códigos HTTP
Aqui está uma tabela com todos os códigos de status HTTP e destacando aqueles que são mais comuns e mais utilizados:
| Código | Descrição | Situação |
|---|---|---|
| *200 | OK | A solicitação foi bem-sucedida |
| *201 | Created | Um novo recurso foi criado como resultado da solicitação |
| 204 | No Content | A solicitação foi bem-sucedida, mas não há conteúdo para retornar |
| *400 | Bad Request | A solicitação foi mal formatada ou inválida |
| 401 | Unauthorized | O cliente precisa se autenticar para obter a resposta solicitada |
| 403 | Forbidden | O cliente não tem permissão para acessar o recurso solicitado |
| *404 | Not Found | O recurso solicitado não foi encontrado |
| 500 | Internal Server Error | Ocorreu um erro interno no servidor |
| 201 | Created | Um recurso é criado |
| 202 | Accepted | Uma requisição foi aceita para processamento, mas não foi concluída |
| 203 | Non-Authoritative Information | Informação retornada, mas de uma fonte não confiável |
| 204 | No Content | A solicitação foi concluída com sucesso, mas não há nenhum conteúdo a retornar |
| 205 | Reset Content | A solicitação foi concluída com sucesso, mas o navegador deve limpar a tela |
| 206 | Partial Content | A solicitação foi atendida parcialmente |
| 300 | Multiple Choices | Múltiplas opções disponíveis |
| 301 | Moved Permanently | O recurso solicitado foi movido permanentemente |
| 302 | Found | O recurso solicitado foi encontrado temporariamente em outro lugar |
| 303 | See Other | O recurso solicitado está em outro lugar |
| 304 | Not Modified | O recurso solicitado não foi modificado desde a última solicitação |
| 305 | Use Proxy | O recurso solicitado deve ser acessado através de um proxy |
| 307 | Temporary Redirect | O recurso solicitado foi movido temporariamente para outro lugar |
| 400 | Bad Request | A solicitação foi inválida ou mal formatada |
| *401 | Unauthorized | O cliente não forneceu credenciais válidas |
| *402 | Payment Required | Pagamento é necessário para acessar este recurso |
| 403 | Forbidden | O cliente não tem permissão para acessar o recurso solicitado |
| *404 | Not Found | O recurso solicitado não foi encontrado |
| 405 | Method Not Allowed | O método HTTP usado na solicitação não é permitido para o recurso solicitado |
| 406 | Not Acceptable | O recurso solicitado não pode ser retornado no formato aceito pelo cliente |
| 407 | Proxy Authentication Required | O cliente deve se autenticar com o proxy antes de continuar |
| 408 | Request Timeout | O tempo limite para a solicitação foi excedido |
| 409 | Conflict | Houve uma conflito ao processar a solicitação |
| 410 | Gone | O recurso solicitado foi removido permanentemente |
| 411 | Length Required | O comprimento do corpo da solicitação é necessário |
| 412 | Precondition Failed | Uma ou mais condições da solicitação falharam |
| 413 | Request Entity Too Large | A entidade da solicitação é muito grande |
| 414 | Request-URI Too Long | A URI da solicitação é muito longa |
| 415 | Unsupported Media Type | O tipo de mídia da solicitação não é suportado |
| 416 | Requested Range Not Satisfiable | O intervalo solicitado não pode ser atendido |
| 417 | Expectation Failed | A expectativa da solicitação falhou |
| 500 | Internal Server Error | Ocorreu um erro interno no servidor |
| *501 | Not Implemented | A solicitação não pode ser atendida pelo servidor |
| 502 | Bad Gateway | O servidor está atuando como gateway e recebeu uma resposta inválida |
| 503 | Service Unavailable | O servidor está temporariamente indisponível |
| 504 | Gateway Timeout | O servidor está atuando como gateway e não recebeu uma resposta a tempo |
| 505 | HTTP Version Not Supported | A versão do HTTP usada na solicitação não é suportada pelo servidor |
Os códigos de status marcados com um * são considerados os mais comuns e mais utilizados, no entanto, isso pode variar dependendo das necessidades da sua API.
Seguir boas práticas ajuda a garantir que sua API seja de alta qualidade, confiável e fácil de usar para os clientes. A fim de prover uma experiência satisfatória para os usuários da sua API, é preciso se atentar a todos os detalhes, e utilizar corretamente os códigos de status é uma delas.




