Пакет google.api

Содержание

HttpBody

Сообщение, представляющее произвольный объект HTTP. Оно должно использоваться только для тех форматов полезной нагрузки, которые не могут быть представлены как JSON, например для двоичных исходных данных или HTML-страниц.

Такое сообщение разрешено и в потоковых, и в непотоковых методах обращения к API как в запросах, так и в ответах.

Сообщение может использоваться как поле запроса верхнего уровня. Это позволяет с легкостью извлекать параметры из шаблонов URL и HTTP в поля запроса и при этом иметь доступ к необработанному телу HTTP.

Пример

message GetResourceRequest {
  // A unique request id.
  string request_id = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;
}

service ResourceService {
  rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty);
}

Пример с потоковыми методами:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
}

При использовании этого типа меняется только обработка тел запроса и ответа. В остальном процедура остается прежней.

Поля
content_type

string

Строка HTTP Content-Type, содержащая тип контента тела.

data

bytes

Двоичные данные тела HTTP.

extensions[]

Any

Метаданные ответа конкретного приложения. Необходимо указать в первом ответе для потоковых API.