HttpBody

任意の 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

string

本文のコンテンツ タイプを指定する HTTP Content-Type ヘッダー値。

data

string (bytes format)

未加工のバイナリとしての HTTP リクエスト / レスポンスの本文。

base64 でエンコードされた文字列。

extensions[]

object

アプリケーション固有のレスポンス メタデータ。ストリーミング API の最初のレスポンスで設定する必要があります。

任意のデータ型のフィールドを含むオブジェクト。型を識別する URI を含むフィールド "@type" を追加できます。例: { "id": 1234, "@type": "types.example.com/standard/id" }