ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA)-এর ডেভেলপার

ফেরত দেওয়ার জন্য ফিল্ড বেছে নিন

আপনি কোনও রুট বা রুট ম্যাট্রিক্সের জন্য অনুরোধ করলে, উত্তরে কী তথ্য ফেরত দেওয়া উচিত তা নির্দিষ্ট করতে আপনাকে অবশ্যই একটি ফিল্ড মাস্ক ব্যবহার করতে হবে। ফেরত আসা ফিল্ডের কোনও ডিফল্ট তালিকা নেই। আপনি ফিল্ড মাস্ক নির্দিষ্ট না করলে, পদ্ধতিটি একটি সমস্যা দেখায়।

ফিল্ড মাস্ক ব্যবহার করলে, আপনি অপ্রয়োজনীয় ডেটার জন্য অনুরোধ করছেন না তা নিশ্চিত করা যায়। এর ফলে, রেসপন্স লেটেন্সি সংক্রান্ত সমস্যা হয় না এবং আপনার সিস্টেমের প্রয়োজন নেই এমন তথ্য ফেরত পাঠানো এড়ানো যায়।

রেসপন্স ফিল্ড মাস্ক-এ আপনার প্রয়োজনীয় ফিল্ডের তালিকা নির্দিষ্ট করুন। তারপর আপনি URL প্যারামিটার $fields বা fields অথবা HTTP বা gRPC হেডার X-Goog-FieldMask ব্যবহার করে যেকোনও পদ্ধতিতে রেসপন্স ফিল্ড মাস্ক পাস করেন।

URL প্যারামিটার সম্পর্কে আরও জানতে, সিস্টেম প্যারামিটার দেখুন।

একটি রেসপন্স ফিল্ড মাস্ক নির্ধারণ করুন

রেসপন্স ফিল্ড মাস্ক হল কমা দিয়ে আলাদা করা পাথের তালিকা, যেখানে প্রতিটি পাথ রেসপন্স মেসেজে একটি অনন্য ফিল্ড নির্দিষ্ট করে। পাথটি টপ-লেভেল রেসপন্স মেসেজ থেকে শুরু হয় এবং নির্দিষ্ট ফিল্ডে ডট-সেপারেটেড পাথ ব্যবহার করে।

নিচে উল্লেখ করা পদ্ধতি অনুযায়ী ফিল্ড পাথ তৈরি ও নির্দিষ্ট করুন:

  1. আপনার প্রয়োজনীয় তথ্য আছে এমন ফিল্ড খুঁজুন। আরও বিবরণের জন্য, ফিল্ড রেফারেন্স দেখুন।
  2. আপনার প্রয়োজনীয় ফিল্ডের জন্য পাথ নির্ধারণ করুন এবং সেগুলির জন্য ফিল্ড মাস্ক তৈরি করুন: বিস্তারিত জানতে, আপনি কোন ফিল্ড মাস্ক ব্যবহার করতে চান তা নির্ধারণ করুন দেখুন।
  3. আপনার প্রয়োজন এমন সব ফিল্ডের জন্য ফিল্ড মাস্ক একত্রিত করুন, কমা দিয়ে ফিল্ড মাস্ক আলাদা করুন। যেমন, রুটের অংশের জন্য distanceMeters এবং রুটের অংশের প্রতিটি ধাপের জন্য সময়সীমা অনুরোধ করতে, কোনও স্পেস না দিয়ে কমা দিয়ে আলাদা করে দুটিই লিখুন:

    routes.legs.distanceMeters,routes.legs.steps.duration
  4. আপনার 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: উত্তরে ফেরত পাঠানোর জন্য রুট অবজেক্টের ফিল্ড নির্দিষ্ট করে, যার আগে routes. থাকে, যেমন, routes.distanceMeters।
    • gRPC: উত্তরে ফেরত পাঠানোর জন্য Route অবজেক্টের ফিল্ড নির্দিষ্ট করে।
  • Compute Route Matrix ফিল্ড মাস্ক
    • REST: ফেরত পাঠানোর জন্য Response body-এর ফিল্ড নির্দিষ্ট করে।
    • gRPC: উত্তরে ফেরত পাঠানোর জন্য RouteMatrixElement অবজেক্টের ফিল্ড নির্দিষ্ট করে।

কোন ফিল্ড মাস্ক ব্যবহার করতে হবে তা নির্ধারণ করুন

আপনি কোন ফিল্ড ব্যবহার করতে চান তা কীভাবে নির্ধারণ করবেন এবং সেগুলির জন্য ফিল্ড মাস্ক তৈরি করবেন তা এখানে দেওয়া হল:

  1. *-এর ফিল্ড মাস্ক ব্যবহার করে সব ফিল্ডের জন্য অনুরোধ করুন।
  2. আপনি যে ফিল্ড চান তার জন্য উত্তরে ফিল্ডের ক্রমবিন্যাস দেখুন।
  3. এই ফর্ম্যাট ব্যবহার করে, আগের ধাপে দেখানো ফিল্ডের ক্রম অনুযায়ী আপনার ফিল্ড মাস্ক তৈরি করুন:

    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

computeRoutes-এ gRPC কল

রুট গণনা করার জন্য ব্যবহৃত gRPC computeRoutes পদ্ধতির জন্য, উত্তরে রুট distanceMeters, duration এবং এনকোড করা পলিলাইন ফিল্ড ফিরিয়ে দিতে, রেসপন্স ফিল্ড মাস্ক সহ একটি ভেরিয়েবল সেট করুন। তারপর আপনি সেই ভেরিয়েবলটি অনুরোধে পাস করতে পারেন:

const (
  fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline"
)

computeRouteMatrix-এ gRPC কল

রুট ম্যাট্রিক্স গণনা করার জন্য ব্যবহৃত gRPC computeRouteMatrix পদ্ধতির জন্য, শুরু ও গন্তব্যের প্রতিটি কম্বিনেশনের জন্য originIndex, destinationIndex এবং duration রিটার্ন করার জন্য নির্দিষ্ট করতে, রেসপন্স ফিল্ড মাস্ক সহ একটি ভেরিয়েবল সেট করুন। তারপর আপনি সেই ভেরিয়েবলটি অনুরোধে পাস করতে পারেন:

const (
  fieldMask = "originIndex,destinationIndex,duration"
)

ফিল্ড পাথ সংক্রান্ত বিবেচনা

আপনার প্রয়োজনীয় ফিল্ডগুলিই শুধু রেসপন্সে অন্তর্ভুক্ত করুন:

  • প্রসেসিংয়ের সময় কমায়, তাই আপনার ফলাফল কম লেটেন্সির সাথে রিটার্ন করা হয়।
  • স্থিতিশীল লেটেন্সি পারফর্ম্যান্স নিশ্চিত করে। আপনি সব ফিল্ড বেছে নিলে অথবা সবচেয়ে উপরের লেভেলে সব ফিল্ড বেছে নিলে, নতুন ফিল্ড যোগ করা হলে এবং সেগুলি আপনার উত্তরে অটোমেটিক অন্তর্ভুক্ত করা হলে, আপনি পারফর্ম্যান্সের অবনতি অনুভব করতে পারেন।
  • উত্তরের সাইজ ছোট হয়, যার ফলে নেটওয়ার্ক থ্রুপুট বেশি হয়।
  • আপনি যাতে অপ্রয়োজনীয় ডেটার জন্য অনুরোধ না করেন তা নিশ্চিত করে, যা অপ্রয়োজনীয় প্রসেসিং সময় এবং বিল করা চার্জ এড়াতে সাহায্য করে।

ফিল্ড মাস্ক তৈরি করার ব্যাপারে আরও জানতে, field_mask.proto দেখুন।