REST Resource: operations

Risorsa: operazione

Questa risorsa rappresenta un'operazione a lunga esecuzione risultante da 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, univoco solo all'interno dello stesso servizio che lo restituisce in origine. Se utilizzi il mapping HTTP predefinito, 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 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 viene completata e sono disponibili error o response.

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

object (Status)

L'errore risultante dall'operazione in caso di errore o annullamento.

response

object

La risposta normale e riuscita 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 è Get/Create/Update standard, la risposta dovrebbe essere la risorsa. Per gli 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. È utilizzato da gRPC. Ogni messaggio Status contiene tre tipi di dati: codice, messaggio di errore e dettagli dell'errore.

Per ulteriori informazioni su questo modello di errore e su come utilizzarlo, consulta la Guida alla progettazione delle API.

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

integer

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[]

object

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

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

Metodi

cancel

Avvia l'annullamento asincrono di un'operazione a lunga esecuzione.

delete

Elimina un'operazione a lunga esecuzione.

get

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

list

Elenca le operazioni che corrispondono al filtro specificato nella richiesta.