Индекс
-
HttpBody
(сообщение)
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 | Значение заголовка HTTP Content-Type, указывающее тип содержимого тела. |
data | Тело HTTP-запроса/ответа в виде необработанного двоичного файла. |
extensions[] | Метаданные ответа конкретного приложения. Должен быть установлен в первом ответе для API потоковой передачи. |