Códigos de resposta de status

Os seguintes códigos de status podem ser retornados em respostas HTTP.

Código HTTP Descrição HTTP Observações
2xx OK Não é um erro. Retornado quando bem-sucedido. Isso também deve ser usado para falhas de lógica de negócios (por exemplo, booking_failure em CreateBookingResponse é preenchido)
400 Solicitação inválida Solicitação inválida/argumentos inválidos (comerciante, serviço, slot não encontrado, tentando reservar um slot inválido, cancelando uma reserva que nunca existiu).
401 Não autorizado Não autenticado (credenciais inválidas, nova tentativa de login). A solicitação não tem credenciais válidas de autenticação para a operação.
403 Proibido Permissão negada/proibida (o autor da chamada é conhecido e rejeitado). Essa resposta não pode ser usada para rejeições causadas pelo esgotamento de algum recurso. Use Too Many Requests para esses erros. Forbidden não pode ser usado se o autor da chamada não puder ser identificado (use Unauthorized para esses erros).
404 Não encontrado Não encontrado (recurso não encontrado, URL inválido, inclusão de RPCs inválidas)
409 Conflito A operação foi cancelada, geralmente devido a um problema de simultaneidade, como falha na verificação do sequenciador ou cancelamento da transação.
429 Há muitas solicitações Alguns recursos foram esgotados, talvez uma cota por usuário ou todo o sistema de arquivos está sem espaço.
499 Solicitação encerrada pelo cliente A operação foi cancelada, geralmente pelo autor da chamada.
500 Erro interno do servidor Erros internos. Isso significa que algumas invariantes esperadas pelo sistema subjacente foram corrompidas. Esse código é reservado para erros graves.
501 Não implementado A operação não é implementada ou não é compatível/ativada neste serviço.
503 Serviço não disponível O serviço não está disponível no momento. Provavelmente, essa é uma condição temporária, que pode ser corrigida ao tentar novamente com uma espera.
504 Tempo limite de gateway O prazo expirou antes do término da operação. Para operações que alteram o estado do sistema, esse erro pode ser retornado mesmo que a operação seja concluída com êxito. Por exemplo, uma resposta bem-sucedida de um servidor pode ter sido adiada o suficiente para que o prazo expire.

Às vezes, vários códigos de erros podem ser aplicados. Os serviços precisam retornar o código de erro mais específico aplicável.