REST Resource: operations

Ресурс: Операция

Этот ресурс представляет собой длительную операцию, являющуюся результатом вызова сетевого API.

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.
}
Поля
name

string

Имя, назначенное сервером, уникальное только в пределах той службы, которая его первоначально возвращает. Если вы используете сопоставление HTTP по умолчанию, name должно быть именем ресурса, заканчивающимся на operations/{unique_id} .

metadata

object

Метаданные, относящиеся к службе, связанные с операцией. Обычно он содержит информацию о ходе выполнения и общие метаданные, такие как время создания. Некоторые службы могут не предоставлять такие метаданные. Любой метод, возвращающий длительную операцию, должен документировать тип метаданных, если таковые имеются.

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

done

boolean

Если значение false , это означает, что операция все еще выполняется. Если true , операция завершается и доступна либо error , либо response .

result поля объединения. Результат операции, который может быть либо error , либо допустимым response . Если done == false , ни error , ни response не устанавливаются. Если done == true , может быть установлен ровно один из error или response . Некоторые службы могут не предоставить результат. result может быть только одним из следующих:
error

object ( Status )

Ошибка результата операции в случае сбоя или отмены.

response

object

Нормальный ответ операции в случае успеха. Если исходный метод не возвращает данных об успехе, например, Delete , ответом будет google.protobuf.Empty . Если исходный метод — стандартный Get / Create / Update , ответом должен быть ресурс. Для других методов ответ должен иметь тип XxxResponse , где Xxx — исходное имя метода. Например, если исходное имя метода — TakeSnapshot() , предполагаемый тип ответа — TakeSnapshotResponse .

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

Положение дел

Тип Status определяет логическую модель ошибок, подходящую для различных сред программирования, включая API REST и API RPC. Он используется gRPC . Каждое сообщение Status содержит три части данных: код ошибки, сообщение об ошибке и сведения об ошибке.

Подробнее об этой модели ошибок и о том, как с ней работать, можно узнать в API Design Guide .

JSON-представление
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Поля
code

integer

Код состояния, который должен быть значением перечисления google.rpc.Code .

message

string

Сообщение об ошибке для разработчика, которое должно быть на английском языке. Любое сообщение об ошибке, обращенное к пользователю, должно быть локализовано и отправлено в поле google.rpc.Status.details или локализовано клиентом.

details[]

object

Список сообщений, содержащих сведения об ошибке. Существует общий набор типов сообщений для использования API.

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

Методы

get

Получает последнее состояние длительной операции.