Índice
Código
Os códigos de erro canónicos para APIs gRPC.
Por vezes, podem aplicar-se vários códigos de erro. Os serviços devem devolver o código de erro mais específico que se aplica. Por exemplo, prefira OUT_OF_RANGE
a FAILED_PRECONDITION
se ambos os códigos se aplicarem. Da mesma forma, prefira NOT_FOUND
ou ALREADY_EXISTS
em vez de FAILED_PRECONDITION
.
Enumerações | |
---|---|
OK |
Não é um erro; é devolvido em caso de êxito. Mapeamento HTTP: 200 OK |
CANCELLED |
A operação foi cancelada, normalmente, pelo autor da chamada. Mapeamento HTTP: 499 Client Closed Request |
UNKNOWN |
Erro desconhecido. Por exemplo, este erro pode ser devolvido quando um valor Mapeamento HTTP: 500 Erro interno do servidor |
INVALID_ARGUMENT |
O cliente especificou um argumento inválido. Tenha em atenção que isto difere de Mapeamento HTTP: 400 Pedido errado |
DEADLINE_EXCEEDED |
O prazo expirou antes de a operação poder ser concluída. Para operações que alteram o estado do sistema, este erro pode ser devolvido mesmo que a operação tenha sido concluída com êxito. Por exemplo, uma resposta bem-sucedida de um servidor pode ter sofrido um atraso suficiente para que o prazo expire. Mapeamento de HTTP: 504 Tempo limite do gateway |
NOT_FOUND |
Não foi encontrada alguma entidade solicitada (por exemplo, um ficheiro ou um diretório). Nota para os programadores de servidores: se um pedido for recusado para uma classe inteira de utilizadores, como a implementação gradual de funcionalidades ou uma lista de autorizações não documentada, pode usar-se Mapeamento HTTP: 404 Not Found |
ALREADY_EXISTS |
A entidade que um cliente tentou criar (por exemplo, um ficheiro ou um diretório) já existe. Mapeamento HTTP: 409 Conflito |
PERMISSION_DENIED |
O autor da chamada não tem autorização para executar a operação especificada. Mapeamento HTTP: 403 Proibido |
UNAUTHENTICATED |
O pedido não tem credenciais de autenticação válidas para a operação. Mapeamento HTTP: 401 Não autorizado |
RESOURCE_EXHAUSTED |
Algum recurso foi esgotado, talvez uma quota por utilizador ou talvez o sistema de ficheiros completo esteja sem espaço. Mapeamento HTTP: 429 Demasiados pedidos |
FAILED_PRECONDITION |
A operação foi rejeitada porque o sistema não se encontra num estado necessário para a execução da operação. Por exemplo, o diretório a eliminar não está vazio, é aplicada uma operação rmdir a um não diretório, etc. Os implementadores de serviços podem usar as seguintes diretrizes para decidir entre Mapeamento HTTP: 400 Pedido errado |
ABORTED |
A operação foi interrompida, normalmente devido a um problema de simultaneidade, como uma falha na verificação do sequenciador ou uma interrupção da transação. Consulte as diretrizes acima para decidir entre Mapeamento HTTP: 409 Conflito |
OUT_OF_RANGE |
A operação foi tentada fora do intervalo válido. Por exemplo, procurar ou ler após o fim do ficheiro. Ao contrário de Existe alguma sobreposição entre Mapeamento HTTP: 400 Pedido errado |
UNIMPLEMENTED |
A operação não está implementada ou não é suportada/ativada neste serviço. Mapeamento HTTP: 501 Not Implemented |
INTERNAL |
Erros internos. Isto significa que algumas invariantes esperadas pelo sistema subjacente foram quebradas. Este código de erro está reservado para erros graves. Mapeamento HTTP: 500 Erro interno do servidor |
UNAVAILABLE |
O serviço está atualmente indisponível. Esta é provavelmente uma condição temporária que pode ser corrigida ao tentar novamente com uma recusa. Tenha em atenção que nem sempre é seguro repetir operações não idempotentes. Consulte as diretrizes acima para decidir entre Mapeamento HTTP: 503 Serviço indisponível |
DATA_LOSS |
Perda de dados irrecuperável ou corrupção de dados. Mapeamento HTTP: 500 Erro interno do servidor |
Estado
O tipo Status
define um modelo de erro lógico adequado para diferentes ambientes de programação, incluindo APIs REST e APIs RPC. É usado pelo gRPC. Cada mensagem Status
contém três elementos de dados: código de erro, mensagem de erro e detalhes do erro.
Pode saber mais acerca deste modelo de erro e como trabalhar com ele no guia de design de APIs.
Campos | |
---|---|
code |
O código de estado, que deve ser um valor enum de |
message |
Uma mensagem de erro destinada a programadores, que deve estar em inglês. Todas as mensagens de erro apresentadas ao utilizador devem ser localizadas e enviadas no campo |
details[] |
Uma lista de mensagens que contêm os detalhes do erro. Existe um conjunto comum de tipos de mensagens para as APIs usarem. |