ইউরোপীয় অর্থনৈতিক অঞ্চল (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 দেখুন।