Package google.rpc

Indice

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

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 agli utenti deve essere localizzato e inviato nel campo google.rpc.Status.details oppure dal client.

details[]

Any

Un elenco di messaggi con i dettagli dell'errore. Le API possono utilizzare un insieme comune di tipi di messaggi.