任意の HTTP 本文を表すメッセージ。RAW バイナリや HTML ページなど、JSON として表現できないペイロード形式にのみ使用する必要があります。
このメッセージは、リクエストとレスポンスのストリーミング API と非ストリーミング API メソッドで使用できます。
このメッセージは最上位レベルのリクエスト フィールドとして使用でき、URL または HTTP テンプレートからリクエスト フィールドにパラメータを抽出する場合や、RAW 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);
}
このタイプを使用すると、リクエストとレスポンスの本文の処理方法のみ変更され、他のすべての機能は未変更のまま動作を継続します。
JSON 表現 | |
---|---|
{ "contentType": string, "data": string, "extensions": [ { "@type": string, field1: ..., ... } ] } |
フィールド | |
---|---|
contentType |
本文のコンテンツ タイプを指定する HTTP Content-Type ヘッダー値。 |
data |
未加工のバイナリとしての HTTP リクエスト / レスポンスの本文。 base64 でエンコードされた文字列。 |
extensions[] |
アプリケーション固有のレスポンス メタデータ。ストリーミング API の最初のレスポンスで設定する必要があります。 任意のデータ型のフィールドを含むオブジェクト。型を識別する URI を含むフィールド |