Indice
Codice
I codici di errore canonici per le API gRPC.
A volte possono essere applicati più codici di errore. I servizi devono restituire il codice di errore più specifico applicabile. Ad esempio, preferisci OUT_OF_RANGE
a FAILED_PRECONDITION
se si applicano entrambi i codici. Analogamente, preferisci NOT_FOUND
o ALREADY_EXISTS
rispetto a FAILED_PRECONDITION
.
Enum | |
---|---|
OK |
Non è un errore; viene restituito in caso di esito positivo. Mappatura HTTP: 200 OK |
CANCELLED |
L'operazione è stata annullata, in genere dal chiamante. Mappatura HTTP: 499 Client Closed Request |
UNKNOWN |
Errore sconosciuto. Ad esempio, questo errore può essere restituito quando un valore Mappatura HTTP: 500 Internal Server Error (Errore interno del server) |
INVALID_ARGUMENT |
Il client ha specificato un argomento non valido. Tieni presente che questo valore è diverso da Mappatura HTTP: 400 Bad Request (Richiesta non valida) |
DEADLINE_EXCEEDED |
La scadenza è scaduta prima del completamento dell'operazione. Per le operazioni che modificano lo stato del sistema, questo errore può essere restituito anche se l'operazione è stata completata correttamente. Ad esempio, una risposta positiva da un server potrebbe aver subito un ritardo sufficientemente lungo da far scadere la scadenza. Mappatura HTTP: timeout del gateway (504) |
NOT_FOUND |
Impossibile trovare alcune entità richieste (ad es. file o directory). Nota per gli sviluppatori di server: se una richiesta viene rifiutata per un'intera classe di utenti, ad esempio per l'implementazione graduale di funzionalità o per una lista consentita non documentata, può essere utilizzato Mappatura HTTP: 404 Not Found |
ALREADY_EXISTS |
L'entità che un client ha tentato di creare (ad es. file o directory) esiste già. Mappatura HTTP: conflitto (409) |
PERMISSION_DENIED |
Il chiamante non dispone dell'autorizzazione per eseguire l'operazione specificata. Mappatura HTTP: 403 accesso negato |
UNAUTHENTICATED |
La richiesta non ha credenziali di autenticazione valide per l'operazione. Mappatura HTTP: 401 Non autorizzato |
RESOURCE_EXHAUSTED |
Una risorsa è stata esaurita, ad esempio una quota per utente, oppure l'intero file system non dispone di spazio. Mappatura HTTP: 429 Too Many Requests |
FAILED_PRECONDITION |
L'operazione è stata rifiutata perché il sistema non è nello stato richiesto per l'esecuzione dell'operazione. Ad esempio, la directory da eliminare non è vuota, un'operazione rmdir viene applicata a una non directory e così via. Gli implementatori di servizi possono utilizzare le seguenti linee guida per scegliere tra Mappatura HTTP: 400 Bad Request (Richiesta non valida) |
ABORTED |
L'operazione è stata interrotta, in genere a causa di un problema di concorrenza, ad esempio un errore di controllo del sequenziatore o l'interruzione della transazione. Consulta le linee guida sopra per decidere tra Mappatura HTTP: conflitto (409) |
OUT_OF_RANGE |
L'operazione è stata tentata oltre l'intervallo valido. Ad esempio, ricerca o lettura oltre il fine file. A differenza di Esiste una discreta sovrapposizione tra Mappatura HTTP: 400 Bad Request (Richiesta non valida) |
UNIMPLEMENTED |
L'operazione non è implementata o non è supportata/attivata in questo servizio. Mappatura HTTP: 501 Not Implemented |
INTERNAL |
Errori interni. Ciò significa che alcune invarianti previste dal sistema sottostante sono state violate. Questo codice di errore è riservato agli errori gravi. Mappatura HTTP: 500 Internal Server Error (Errore interno del server) |
UNAVAILABLE |
Il servizio non è al momento disponibile. Molto probabilmente si tratta di una condizione temporanea, che può essere corretta riprovando con un backoff. Tieni presente che non è sempre sicuro riprovare le operazioni non idempotenti. Consulta le linee guida sopra per decidere tra Mappatura HTTP: 503 Servizio non disponibile |
DATA_LOSS |
Perdita di dati non recuperabili o danneggiamento dei dati. Mappatura HTTP: 500 Internal Server Error (Errore interno del server) |
Stato
Il tipo Status
definisce un modello di errore logico adatto a diversi ambienti di programmazione, tra cui API REST e API RPC. Viene utilizzato da gRPC. Ogni messaggio Status
contiene tre dati: codice di errore, messaggio di errore e dettagli dell'errore.
Per scoprire di più su questo modello di errore e su come utilizzarlo, consulta la guida alla progettazione delle API.
Campi | |
---|---|
code |
Il codice di stato, che deve essere un valore enum di |
message |
Un messaggio di errore rivolto agli sviluppatori, che deve essere in inglese. Qualsiasi messaggio di errore rivolto all'utente deve essere localizzato e inviato nel campo |
details[] |
Un elenco di messaggi che contengono i dettagli dell'errore. Esiste un insieme comune di tipi di messaggi che le API possono utilizzare. |