ফেরত দেওয়ার জন্য ক্ষেত্রগুলি নির্বাচন করুন
যখন আপনি কোনো রুট বা রুট ম্যাট্রিক্সের জন্য অনুরোধ করেন, তখন রেসপন্সে কী তথ্য ফেরত আসবে তা নির্দিষ্ট করার জন্য আপনাকে অবশ্যই একটি ফিল্ড মাস্ক ব্যবহার করতে হবে। ফেরত আসা ফিল্ডগুলোর কোনো ডিফল্ট তালিকা নেই। আপনি যদি ফিল্ড মাস্ক নির্দিষ্ট না করেন, তাহলে মেথডগুলো একটি এরর ফেরত দেয়।
ফিল্ড মাস্ক ব্যবহার করলে এটিও নিশ্চিত হয় যে আপনি অপ্রয়োজনীয় ডেটার জন্য অনুরোধ করছেন না, যা ফলস্বরূপ প্রতিক্রিয়ার বিলম্ব কমাতে সাহায্য করে এবং আপনার সিস্টেমের প্রয়োজন নেই এমন তথ্য ফেরত দেওয়া এড়িয়ে চলে।
একটি রেসপন্স ফিল্ড মাস্ক- এ আপনি আপনার প্রয়োজনীয় ফিল্ডগুলোর তালিকা নির্দিষ্ট করে দেন। এরপর আপনি URL প্যারামিটার $fields বা fields ব্যবহার করে, অথবা HTTP বা gRPC হেডার X-Goog-FieldMask ব্যবহার করে সেই রেসপন্স ফিল্ড মাস্কটি যেকোনো একটি মেথডে পাস করেন।
URL প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, সিস্টেম প্যারামিটার দেখুন।
একটি প্রতিক্রিয়া ক্ষেত্র মাস্ক সংজ্ঞায়িত করুন
রেসপন্স ফিল্ড মাস্ক হলো পাথগুলোর একটি কমা-বিভক্ত তালিকা, যেখানে প্রতিটি পাথ রেসপন্স মেসেজের একটি অনন্য ফিল্ডকে নির্দিষ্ট করে। পাথটি শীর্ষ-স্তরের রেসপন্স মেসেজ থেকে শুরু হয় এবং নির্দিষ্ট ফিল্ডে যাওয়ার জন্য একটি ডট-বিভক্ত পাথ ব্যবহার করে।
নিম্নলিখিতভাবে একটি ফিল্ড পাথ তৈরি ও নির্দিষ্ট করুন:
- আপনার প্রয়োজনীয় তথ্য রয়েছে এমন ফিল্ডগুলো খুঁজুন । বিস্তারিত জানতে, ফিল্ড রেফারেন্স দেখুন।
- আপনার প্রয়োজনীয় ফিল্ডগুলির পাথ নির্ধারণ করুন এবং সেগুলির জন্য ফিল্ড মাস্ক তৈরি করুন : বিস্তারিত জানার জন্য, “আপনি কোন ফিল্ড মাস্ক ব্যবহার করতে চান তা নির্ধারণ করুন” দেখুন।
আপনার প্রয়োজনীয় সমস্ত ফিল্ডের ফিল্ড মাস্কগুলো কমা দিয়ে আলাদা করে একত্রিত করুন । উদাহরণস্বরূপ, রুট লেগের জন্য
distanceMetersএবং প্রতিটি রুট লেগ স্টেপের জন্য সময়কাল অনুরোধ করতে, উভয়ই কমা দিয়ে আলাদা করে, কোনো স্পেস ছাড়া লিখুন:routes.legs.distanceMeters,routes.legs.steps.duration
আপনার API অনুরোধের সাথে ফিল্ড মাস্কটি পাঠান । উদাহরণস্বরূপ, একটি curl অনুরোধে, আপনি
-HএবংX-Goog-FieldMaskব্যবহার করে ফিল্ড মাস্কটি নির্দিষ্ট করবেন:-H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
ক্ষেত্র রেফারেন্স
ফিল্ড মাস্কের মাধ্যমে কোনো রেসপন্সে আপনি যে ফিল্ডগুলো অনুরোধ করতে পারেন, তা দেখতে নিচের তালিকায় লিঙ্ক করা Routes API Compute Routes অথবা Compute Route Matrix রেফারেন্সগুলো দেখুন। রেফারেন্সে দেখানো অনুযায়ী ফিল্ডগুলো ক্যামেল কেসে উল্লেখ করুন। উদাহরণস্বরূপ, routePreference ।
এই রেফারেন্সগুলিতে উপলব্ধ ফিল্ডগুলি অন্তর্ভুক্ত রয়েছে; তবে, সম্পূর্ণ ফিল্ড মাস্ক পাথ নির্ধারণ করতে আপনাকে ফিল্ডগুলির হায়ারার্কি দেখতে হবে। ফিল্ডগুলির হায়ারার্কি পাওয়ার বিষয়ে বিস্তারিত জানতে, "আপনি কোন ফিল্ড মাস্ক ব্যবহার করতে চান তা নির্ধারণ করুন " দেখুন।
- রুট ফিল্ড মাস্ক গণনা করুন
- রুট ম্যাট্রিক্স ফিল্ড মাস্ক গণনা করুন
- REST: রেসপন্স বডিতে ফেরত দেওয়ার জন্য ফিল্ডগুলো নির্দিষ্ট করে।
- gRPC: ফেরত দেওয়ার জন্য রেসপন্সে RouteMatrixElement অবজেক্টের ফিল্ডগুলো নির্দিষ্ট করে।
কোন ফিল্ড মাস্ক ব্যবহার করতে হবে তা নির্ধারণ করুন
আপনি কোন ফিল্ডগুলো ব্যবহার করতে চান তা নির্ধারণ করার এবং সেগুলোর জন্য ফিল্ড মাস্ক তৈরি করার পদ্ধতি নিচে দেওয়া হলো:
- Request all fields using a field mask of
*. - আপনার কাঙ্ক্ষিত ফিল্ডগুলোর জন্য রেসপন্সের ফিল্ডগুলোর ক্রমবিন্যাস দেখুন ।
পূর্ববর্তী ধাপে দেখানো ফিল্ডগুলির ক্রমবিন্যাস ব্যবহার করে এই ফর্ম্যাট অনুসারে আপনার ফিল্ড মাস্কগুলি তৈরি করুন :
topLevelField[.secondLevelField][.thirdLevelField][...]
উদাহরণস্বরূপ, একটি রুট থেকে প্রাপ্ত এই আংশিক প্রতিক্রিয়ার জন্য:
"routes": [ { "legs": [ { "steps": [ {"distanceMeters": 119}, {"distanceMeters": 41} ] } ], "distanceMeters": 160 } ]
যদি আপনি রুট লেগের জন্য শুধুমাত্র distanceMeters ফিল্ডটি ফেরত দিতে চান; অর্থাৎ, পূর্ববর্তী স্যাম্পলের শেষ distanceMeters , তাহলে আপনার ফিল্ড মাস্কটি হবে নিম্নরূপ:
routes.legs.distanceMeters
এর পরিবর্তে আপনি যদি রুট লেগের প্রতিটি ধাপের জন্য distanceMeters ফিল্ডটি ফেরত দিতে চান; অর্থাৎ, পূর্ববর্তী নমুনায় steps এর অধীনে থাকা distanceMeters , তাহলে আপনার ফিল্ড মাস্কটি হবে নিম্নরূপ:
routes.legs.steps.distanceMeters
আপনি যদি উপরের ফলাফলসহ উভয়ই ফেরত দিতে চান, তাহলে আপনার ফিল্ড মাস্কটি হবে নিম্নরূপ:
routes.legs.distanceMeters,routes.legs.steps.distanceMeters
উদাহরণ ফিল্ড মাস্ক পাথ
এই বিভাগে REST এবং gRPC কলে রেসপন্স ফিল্ড মাস্কের অংশ হিসেবে কীভাবে ফিল্ড পাথ নির্দিষ্ট করতে হয়, তার আরও উদাহরণ রয়েছে।
computeRoutes এ REST কল
প্রথম উদাহরণে, একটি রুট গণনা করার জন্য আপনি computeRoutes মেথডে একটি REST কল ব্যবহার করেছেন। এই উদাহরণে, হেডারে আপনি ফিল্ড মাস্ক নির্দিষ্ট করেছেন যাতে রেসপন্সে রুটের distanceMeters এবং duration ফিল্ডগুলো রিটার্ন করা যায়। ফিল্ড নামের আগে routes যোগ করতে মনে রাখবেন।
X-Goog-FieldMask: routes.distanceMeters,routes.duration
computeRouteMatrix এ REST কল
রাউট ম্যাট্রিক্স গণনা করতে ব্যবহৃত REST computeRouteMatrix মেথডের ক্ষেত্রে, হেডারে প্রতিটি অরিজিন এবং ডেস্টিনেশন কম্বিনেশনের জন্য originIndex , destinationIndex , এবং duration রিটার্ন করার জন্য উল্লেখ করুন:
X-Goog-FieldMask: originIndex,destinationIndex,duration
gRPC কল
gRPC-এর জন্য, রেসপন্স ফিল্ড মাস্ক ধারণকারী একটি ভেরিয়েবল সেট করুন। এরপর আপনি সেই ভেরিয়েবলটি রিকোয়েস্টে পাস করতে পারবেন।
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
ক্ষেত্রের পথের বিবেচ্য বিষয়গুলি
আপনার প্রয়োজনীয় ফিল্ডগুলোই শুধু ফেরত পেতে, রেসপন্সে কেবল আবশ্যক ফিল্ডগুলো অন্তর্ভুক্ত করুন:
- প্রক্রিয়াকরণের সময় কমিয়ে দেয় , ফলে আপনার ফলাফল কম বিলম্বে ফিরে আসে।
- স্থিতিশীল লেটেন্সি পারফরম্যান্স নিশ্চিত করে । আপনি যদি সমস্ত ফিল্ড নির্বাচন করেন, অথবা যদি আপনি শীর্ষ স্তরে সমস্ত ফিল্ড নির্বাচন করেন, তাহলে নতুন ফিল্ড যুক্ত হলে এবং সেগুলি স্বয়ংক্রিয়ভাবে আপনার রেসপন্সে অন্তর্ভুক্ত হয়ে গেলে আপনি পারফরম্যান্সের অবনতি অনুভব করতে পারেন।
- এর ফলে প্রতিক্রিয়ার আকার ছোট হয় , যা নেটওয়ার্ক থ্রুপুট বাড়িয়ে তোলে।
- এটি নিশ্চিত করে যে আপনি অপ্রয়োজনীয় ডেটার জন্য অনুরোধ করছেন না , যা অপ্রয়োজনীয় প্রক্রিয়াকরণের সময় এবং বিলের পরিমাণ এড়াতে সাহায্য করে।
ফিল্ড মাস্ক তৈরির বিষয়ে আরও বিস্তারিত জানতে field_mask.proto দেখুন।