REST Resource: operations

Risorsa: operazione

Questa risorsa rappresenta un'operazione a lunga esecuzione che è il risultato di una chiamata all'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 solo all'interno dello stesso servizio che lo restituisce originariamente. Se utilizzi la mappatura HTTP predefinita, name deve essere il nome di una 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 questi metadati. Qualsiasi metodo che restituisce un'operazione a lunga esecuzione deve documentare l'eventuale tipo di metadati.

Un oggetto che contiene 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 è completata e error o response è disponibile.

Campo unione result. Il risultato dell'operazione, che può essere un valore error o un valore response valido. Se done == false, non sono impostati né errorresponse. Se done == true, può essere impostato esattamente un valore tra error o response. Alcuni servizi potrebbero non fornire il risultato. result può essere solo uno dei seguenti:
error

object (Status)

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

response

object

La risposta normale e positiva dell'operazione. Se il metodo originale non restituisce dati in caso di esito positivo, 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 del metodo originale. Ad esempio, se il nome del metodo originale è TakeSnapshot(), il tipo di risposta dedotto è TakeSnapshotResponse.

Un oggetto che contiene 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 dati: codice di errore, messaggio di errore e dettagli dell'errore.

Per saperne di più su questo modello di errore e su come utilizzarlo, consulta la Guida alla progettazione dell'API.

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

integer

Il codice di stato, che deve essere un valore enum pari a 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 di messaggi con i dettagli dell'errore. Le API possono utilizzare un insieme comune di tipi di messaggi.

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" }.

Metodi

get

Recupera lo stato più recente di un'operazione a lunga esecuzione.