Indice
Status
(messaggio)
Stato
Il tipo Status
definisce un modello di errore logico adatto a diversi ambienti di programmazione, tra cui API REST e API RPC. È utilizzato da gRPC. Il modello di errore è progettato per:
- Semplice da utilizzare e da capire per la maggior parte degli utenti
- Abbastanza flessibile da soddisfare esigenze impreviste
Panoramica
Il messaggio Status
contiene tre tipi di dati: codice, messaggio di errore e dettagli dell'errore. Il codice di errore deve essere un valore enum di google.rpc.Code
, ma, se necessario, potrebbe accettare codici di errore aggiuntivi. Deve essere un messaggio in inglese rivolto agli sviluppatori, che lo aiuti a understand e understand l'errore. Se è necessario un messaggio di errore localizzato rivolto agli utenti, inseriscilo nei dettagli dell'errore o localizzalo nel client. I dettagli facoltativi dell'errore possono contenere informazioni arbitrarie sull'errore. Nel pacchetto google.rpc
è presente un insieme predefinito di tipi di dettagli di errore che possono essere utilizzati per condizioni di errore comuni.
Mappatura delle lingue
Il messaggio Status
è la rappresentazione logica del modello di errore, ma non è necessariamente il formato effettivo del cavo. Quando il messaggio Status
viene esposto in librerie client e protocolli di cavo differenti, può essere mappato in modo diverso. Ad esempio, sarà probabilmente mappato ad alcune eccezioni in Java, ma più probabilmente ad alcuni codici di errore in C.
Altri utilizzi
Il modello di errore e il messaggio Status
possono essere utilizzati in diversi ambienti, con o senza API, per fornire agli sviluppatori un'esperienza coerente in ambienti diversi.
Ecco alcuni esempi di utilizzo di questo modello di errore:
Errori parziali. Se un servizio deve restituire al client errori parziali, può incorporare
Status
nella risposta normale per indicare gli errori parziali.Errori del flusso di lavoro. Un flusso di lavoro tipico prevede più passaggi. A ogni passaggio potrebbe essere visualizzato un messaggio
Status
per la segnalazione degli errori.Operazioni in blocco. Se un client utilizza una richiesta in batch e una risposta batch, è necessario utilizzare il messaggio
Status
direttamente all'interno della risposta batch, uno per ogni risposta secondaria di errore.operazioni asincrone. Se una chiamata API incorpora i risultati di un'operazione asincrona nella sua risposta, lo stato di queste operazioni deve essere rappresentato direttamente utilizzando il messaggio
Status
.Registrazione. Se alcuni errori dell'API vengono archiviati nei log, è possibile che il messaggio
Status
venga utilizzato direttamente dopo qualsiasi eliminazione necessaria per motivi di sicurezza/privacy.
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 agli utenti deve essere localizzato e inviato nel campo |
details[] |
Un elenco di messaggi con i dettagli dell'errore. Le API possono utilizzare un insieme comune di tipi di messaggi. |