REST Resource: operations

Recurso: Operação

Este recurso representa uma operação de execução longa 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 dentro do 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. Ele 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 um 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 for true , a operação será concluída e o error ou a response estará disponível.

result do campo União. O resultado da operação, que pode ser um error ou uma response válida. Se done == false , nem o error nem a 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 Get / Create / Update padrão, a resposta deve ser o recurso. Para outros métodos, a resposta deve ser do 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 inferida será TakeSnapshotResponse .

Um objeto que contém campos de um 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 lógico de erro adequado para diferentes ambientes de programação, incluindo APIs REST e APIs RPC. É usado pelo gRPC . Cada mensagem de Status contém três dados: código de erro, mensagem de erro e detalhes do erro.

Você pode saber 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 para o desenvolvedor, que deve estar em inglês. Qualquer mensagem de erro voltada para o usuário deve ser localizada e enviada no campo google.rpc.Status.details ou localizada pelo cliente.

details[]

object

Uma lista de mensagens que carregam os detalhes do erro. Há um conjunto comum de tipos de mensagens para APIs usarem.

Um objeto que contém campos de um 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.