Guia de uso de códigos de status em REST API

Apresenta critérios práticos para escolher o código de status certo para cada situação em uma REST API.

Uma REST API bem projetada comunica com clareza o resultado de uma solicitação por meio dos códigos de status. Use 200 OK para uma leitura bem-sucedida, 201 Created para a criação de um recurso (com a nova URL no cabeçalho Location) e 204 No Content para um sucesso sem corpo a retornar (por exemplo, uma exclusão).

Os erros do cliente são distinguidos com 4xx. O padrão é 400 Bad Request para sintaxe inválida, 401 Unauthorized quando é necessária autenticação, 403 Forbidden para falta de permissão, 404 Not Found para um recurso inexistente, 409 Conflict para um conflito de estado, 422 Unprocessable Content para uma falha de validação e 429 Too Many Requests para excesso de solicitações.

Os erros de servidor são sinalizados com 5xx. Use 500 Internal Server Error para uma exceção inesperada e 503 Service Unavailable para sobrecarga ou manutenção, enviando junto o cabeçalho Retry-After quando possível. Acima de tudo, retornar sempre o mesmo código de forma consistente para a mesma situação é o que determina a usabilidade de uma API.