Operation

Questa risorsa rappresenta un'operazione a lunga esecuzione che è il risultato di una chiamata API di rete.

Rappresentazione JSON
{
  "name": string,
  "metadata": {
    "@type": string,
    field1: ...,
    ...
  },
  "done": boolean,

  // Union field result can be only one of the following:
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // End of list of possible types for union field result.
}
Campi
name

string

Il nome assegnato dal server, che è univoco all'interno dello stesso servizio che lo restituisce originariamente. Se utilizzi la mappatura HTTP predefinita, name deve essere un nome di risorsa che termina con operations/{unique_id}.

metadata

object

Metadati specifici del servizio associati all'operazione. In genere contiene informazioni sull'avanzamento e metadati comuni, come l'ora di creazione. Alcuni servizi potrebbero non fornire tali metadati. Qualsiasi metodo che restituisce un'operazione a lunga esecuzione dovrebbe documentare il tipo di metadati, se presente.

Un oggetto contenente campi di tipo arbitrario. Un campo aggiuntivo "@type" contiene un URI che identifica il tipo. Esempio: { "id": 1234, "@type": "types.example.com/standard/id" }.

done

boolean

Se il valore è false, significa che l'operazione è ancora in corso. Se true, l'operazione viene completata e è disponibile error o response.

Campo unione result. Il risultato dell'operazione, che può essere un error o un response valido. Se done == false, né errorresponse sono impostati. Se done == true, viene impostato esattamente uno di error o response. result può essere solo uno dei seguenti:
error

object (Status)

Il risultato dell'errore dell'operazione in caso di errore o annullamento.

response

object

La normale risposta dell'operazione in caso di esito positivo. Se il metodo originale non restituisce dati corretti, ad esempio Delete, la risposta è google.protobuf.Empty. Se il metodo originale è standard Get/Create/Update, la risposta deve essere la risorsa. Per altri metodi, la risposta deve essere di tipo XxxResponse, dove Xxx è il nome originale del metodo. Ad esempio, se il nome del metodo originale è TakeSnapshot(), il tipo di risposta dedotto è TakeSnapshotResponse.

Un oggetto contenente campi di tipo arbitrario. Un campo aggiuntivo "@type" contiene un URI che identifica il tipo. Esempio: { "id": 1234, "@type": "types.example.com/standard/id" }.

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 tipi di 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.

Rappresentazione JSON
{
  "code": number,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Campi
code

number

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 localizzato dal client.

details[]

object

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

Un oggetto contenente campi di tipo arbitrario. Un campo aggiuntivo "@type" contiene un URI che identifica il tipo. Esempio: { "id": 1234, "@type": "types.example.com/standard/id" }.