REST Resource: operations

Recurso: Operação

Este recurso representa uma operação de longa duração que é o resultado de uma chamada de API de rede.

Representação 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.
}
Campos
name

string

O nome atribuído pelo servidor, que é exclusivo apenas no mesmo serviço que o retorna originalmente. Se você usar o mapeamento HTTP padrão, o name deverá ser um nome de recurso que termine com operations/{unique_id} .

metadata

object

Metadados específicos do serviço associados à operação. Normalmente contém informações de progresso e metadados comuns, como tempo de criação. Alguns serviços podem não fornecer esses metadados. Qualquer método que retorne uma operação de longa duração deve documentar o tipo de metadados, se houver.

Um objeto que contém campos de tipo arbitrário. Um campo adicional "@type" contém um URI que identifica o tipo. Exemplo: { "id": 1234, "@type": "types.example.com/standard/id" } .

done

boolean

Se o valor for false , significa que a operação ainda está em andamento. Se true , a operação será concluída e error ou response estarão disponíveis.

result do campo de união. O resultado da operação, que pode ser um error ou uma response válida. Se done == false , nem error nem response serão definidos. Se done == true , exatamente um error ou response pode ser definido. Alguns serviços podem não fornecer o resultado. result pode ser apenas um dos seguintes:
error

object ( Status )

O resultado do erro da operação em caso de falha ou cancelamento.

response

object

A resposta normal da operação em caso de sucesso. Se o método original não retornar dados de sucesso, como Delete , a resposta será google.protobuf.Empty . Se o método original for padrão Get / Create / Update , a resposta deverá ser o recurso. Para outros métodos, a resposta deve ter o tipo XxxResponse , onde Xxx é o nome original do método. Por exemplo, se o nome do método original for TakeSnapshot() , o tipo de resposta inferido será TakeSnapshotResponse .

Um objeto que contém campos de tipo arbitrário. Um campo adicional "@type" contém um URI que identifica o tipo. Exemplo: { "id": 1234, "@type": "types.example.com/standard/id" } .

Status

O tipo Status define um modelo de erro lógico adequado para diferentes ambientes de programação, incluindo APIs REST e APIs RPC. É usado pelo gRPC . Cada mensagem Status contém três dados: código de erro, mensagem de erro e detalhes do erro.

Você pode descobrir mais sobre esse modelo de erro e como trabalhar com ele no API Design Guide .

Representação JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Campos
code

integer

O código de status, que deve ser um valor enum de google.rpc.Code .

message

string

Uma mensagem de erro voltada ao desenvolvedor, que deve estar em inglês. Qualquer mensagem de erro voltada ao usuário deve ser localizada e enviada no campo google.rpc.Status.details ou localizada pelo cliente.

details[]

object

Uma lista de mensagens que contêm os detalhes do erro. Há um conjunto comum de tipos de mensagens para uso pelas APIs.

Um objeto que contém campos de tipo arbitrário. Um campo adicional "@type" contém um URI que identifica o tipo. Exemplo: { "id": 1234, "@type": "types.example.com/standard/id" } .

Métodos

get

Obtém o estado mais recente de uma operação de longa duração.