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

এই ধরনের ব্যবহার শুধুমাত্র অনুরোধ এবং প্রতিক্রিয়া সংস্থাগুলি কীভাবে পরিচালনা করা হয় তা পরিবর্তন করে, অন্যান্য সমস্ত বৈশিষ্ট্য অপরিবর্তিতভাবে কাজ করতে থাকবে।

JSON প্রতিনিধিত্ব
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
ক্ষেত্র
contentType

string

HTTP বিষয়বস্তু-প্রকার শিরোনামের মান যা বডির বিষয়বস্তুর ধরন নির্দিষ্ট করে।

data

string ( bytes format)

এইচটিটিপি অনুরোধ/প্রতিক্রিয়ার মূল অংশটি কাঁচা বাইনারি হিসাবে।

একটি base64-এনকোডেড স্ট্রিং।

extensions[]

object

অ্যাপ্লিকেশন নির্দিষ্ট প্রতিক্রিয়া মেটাডেটা. স্ট্রিমিং API-এর জন্য প্রথম প্রতিক্রিয়াতে সেট করা আবশ্যক।

একটি নির্বিচারী ধরনের ক্ষেত্র ধারণকারী একটি বস্তু. একটি অতিরিক্ত ক্ষেত্র "@type" এ টাইপ সনাক্তকারী একটি URI রয়েছে৷ উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }