HttpBody

Rastgele bir HTTP gövde metnini temsil eden mesaj. Yalnızca ham ikili program veya HTML sayfası gibi JSON olarak temsil edilemeyen yük biçimleri için kullanılmalıdır.

Bu mesaj hem istekteki hem de yanıttaki akışkan ve akışkan olmayan API yöntemlerinde kullanılabilir.

Üst düzey istek alanı olarak kullanılabilir. Bu, URL veya HTTP şablonundan parametreleri alıp istek alanlarına yerleştirmek ve ham HTTP gövde metnine erişmek istediğinizde kullanışlı olur.

Örnek:

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);
}

Akışkan yöntemlerin kullanıldığı örnek:

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

Bu türün kullanılması yalnızca istek ve yanıt gövde metinlerinin ele alınma biçimini değiştirir, diğer tüm özellikler herhangi bir değişiklik olmadan çalışmaya devam eder.

JSON gösterimi
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Alanlar
contentType

string

Gövdenin içerik türünü belirten HTTP Content-Type üstbilgisi değeri.

data

string (bytes format)

Ham ikili programdaki HTTP istek/yanıt gövdesi.

base64 kodlu bir dize.

extensions[]

object

Uygulamaya özgü yanıt meta verileri. Akışkan API'ler için ilk yanıtta ayarlanmalıdır.

Rastgele türden alanlar içeren nesne. Ek bir "@type" alanı, türü tanımlayan bir URI içerir. Örnek: { "id": 1234, "@type": "types.example.com/standard/id" }.