Package google.rpc

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 Status ricevuto da un altro spazio degli indirizzi appartiene a uno spazio di errore non noto in questo spazio degli indirizzi. Anche gli errori generati da API che non restituiscono informazioni sufficienti sugli errori possono essere convertiti in questo errore.

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 FAILED_PRECONDITION. INVALID_ARGUMENT indica gli argomenti problematici indipendentemente dallo stato del sistema (ad es. un nome file con formato non corretto).

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 NOT_FOUND. Se una richiesta viene rifiutata per alcuni utenti all'interno di una classe di utenti, ad esempio il controllo dell'accesso basato sugli utenti, deve essere utilizzato PERMISSION_DENIED.

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. PERMISSION_DENIED non deve essere utilizzato per i rifiuti causati dall'esaurimento di una risorsa (per questi errori, utilizza invece RESOURCE_EXHAUSTED). PERMISSION_DENIED non deve essere utilizzato se non è possibile identificare l'utente che ha effettuato la chiamata (per questi errori, utilizza UNAUTHENTICATED). Questo codice di errore non implica che la richiesta sia valida o che l'entità richiesta esista o soddisfi altre pre-condizioni.

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 FAILED_PRECONDITION, ABORTED e UNAVAILABLE: (a) Utilizza UNAVAILABLE se il client può riprovare solo la chiamata con errore. (b) Utilizza ABORTED se il client deve riprovare a un livello superiore. Ad esempio, quando un test-and-set specificato dal client non va a buon fine, il client deve riavviare una sequenza di lettura, modifica e scrittura. (c) Utilizza FAILED_PRECONDITION se il client non deve riprovare finché lo stato del sistema non è stato corretto esplicitamente. Ad esempio, se un comando "rmdir" non va a buon fine perché la directory non è vuota, deve essere restituito FAILED_PRECONDITION, poiché il client non deve riprovare a meno che i file non vengano eliminati dalla directory.

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 FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

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 INVALID_ARGUMENT, questo errore indica un problema che potrebbe essere risolto se lo stato del sistema cambia. Ad esempio, un file system a 32 bit genererà INVALID_ARGUMENT se gli viene chiesto di leggere in un offset non compreso nell'intervallo [0,2^32-1], ma genererà OUT_OF_RANGE se gli viene chiesto di leggere da un offset superiore alle dimensioni attuali del file.

Esiste una discreta sovrapposizione tra FAILED_PRECONDITION e OUT_OF_RANGE. Ti consigliamo di utilizzare OUT_OF_RANGE (l'errore più specifico) quando è applicabile, in modo che gli utenti che eseguono l'iterazione in uno spazio possano cercare facilmente un errore OUT_OF_RANGE per rilevare quando hanno terminato.

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 FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

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

int32

Il codice di stato, che deve essere un valore enum di google.rpc.Code.

message

string

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 google.rpc.Status.details oppure localizzato dal cliente.

details[]

Any

Un elenco di messaggi che contengono i dettagli dell'errore. Esiste un insieme comune di tipi di messaggi che le API possono utilizzare.