ভূমিকা
যখন আপনি Place Details (New) , Nearby Search (New) , বা Text Search (New) মেথডগুলো কল করেন, তখন আপনাকে অবশ্যই নির্দিষ্ট করে দিতে হবে যে রেসপন্সে আপনি কোন ফিল্ডগুলো ফেরত পেতে চান। ফেরত আসা ফিল্ডগুলোর কোনো ডিফল্ট তালিকা নেই। আপনি যদি এই তালিকাটি বাদ দেন, তাহলে মেথডগুলো একটি এরর ফেরত দেবে।
সমর্থিত ডেটা ফিল্ড এবং তাদের সংশ্লিষ্ট SKU-গুলির একটি সম্পূর্ণ তালিকা ‘Place Data Fields (New)’ -এ পাওয়া যাবে। প্রতিটি API-এর জন্য নির্দিষ্ট ফিল্ডগুলির তথ্যের জন্য, নিম্নলিখিতগুলি দেখুন:
- স্থানের বিবরণ (নতুন) ফিল্ডমাস্ক প্যারামিটার
- নিকটবর্তী অনুসন্ধান (নতুন) ফিল্ডমাস্ক প্যারামিটার
- টেক্সট সার্চ (নতুন) ফিল্ডমাস্ক প্যারামিটার
আপনি একটি রেসপন্স ফিল্ড মাস্ক তৈরি করে ফিল্ড তালিকাটি নির্দিষ্ট করেন। এরপর আপনি $fields বা fields প্যারামিটার ব্যবহার করে, অথবা HTTP বা gRPC হেডার X-Goog-FieldMask ব্যবহার করে রেসপন্স ফিল্ড মাস্কটি যেকোনো একটি মেথডে পাস করেন।
ফিল্ড মাস্কিং একটি ভালো ডিজাইন পদ্ধতি, যা অপ্রয়োজনীয় ডেটা অনুরোধ করা থেকে বিরত রাখে এবং এর ফলে অপ্রয়োজনীয় প্রসেসিং সময় ও বিলিং চার্জ এড়ানো যায়।
একটি প্রতিক্রিয়া ক্ষেত্র মাস্ক সংজ্ঞায়িত করুন
রেসপন্স ফিল্ড মাস্ক হলো পাথগুলোর একটি কমা-বিভক্ত তালিকা, যেখানে প্রতিটি পাথ রেসপন্স বডির একটি অনন্য ফিল্ডকে নির্দিষ্ট করে। এই পাথটি শীর্ষ-স্তরের রেসপন্স মেসেজ থেকে শুরু হয় এবং নির্দিষ্ট ফিল্ডে যাওয়ার জন্য একটি ডট-বিভক্ত পাথ ব্যবহার করে।
নিম্নলিখিতভাবে একটি ক্ষেত্রের পথ তৈরি করুন:
topLevelField[.secondLevelField][.thirdLevelField][...]
আপনি * ফিল্ড মাস্ক ব্যবহার করে সমস্ত ফিল্ডের জন্য অনুরোধ করতে পারেন।
ফিল্ড মাস্ক কীভাবে তৈরি করতে হয় সে সম্পর্কে আরও তথ্যের জন্য field_mask.proto দেখুন।
কোন ফিল্ড মাস্ক ব্যবহার করতে হবে তা নির্ধারণ করুন
আপনি কোন ফিল্ড মাস্কগুলো ব্যবহার করতে চান, তা যেভাবে নির্ধারণ করবেন তা নিচে দেওয়া হলো:
-
*ফিল্ড মাস্ক ব্যবহার করে সমস্ত ফিল্ডের জন্য অনুরোধ করুন। - রেসপন্সের ফিল্ডগুলোর ক্রমবিন্যাস দেখুন এবং আপনার প্রয়োজনীয় ফিল্ডগুলো নির্ধারণ করুন।
- ফিল্ড হায়ারার্কি ব্যবহার করে আপনার ফিল্ড মাস্ক তৈরি করুন।
নিকটবর্তী অনুসন্ধান (নতুন) এবং পাঠ্য অনুসন্ধান (নতুন)-এর জন্য একটি প্রতিক্রিয়া ক্ষেত্র মাস্ক সংজ্ঞায়িত করুন।
Nearby Search (New) এবং Text Search (New) রেসপন্সের places ফিল্ডে Place অবজেক্টের একটি অ্যারে রিটার্ন করে। এই API-গুলোর ক্ষেত্রে, places হলো রেসপন্সের টপ-লেভেল ফিল্ড।
উদাহরণস্বরূপ, একটি টেক্সট সার্চ (নতুন) থেকে সম্পূর্ণ প্রতিক্রিয়া অবজেক্টটি দেখতে:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: *' \
'https://places.googleapis.com/v1/places:searchText'টেক্সট সার্চ (নতুন) কল থেকে প্রাপ্ত সম্পূর্ণ রেসপন্স অবজেক্টটি নিম্নলিখিত আকারে থাকে:
{ "places": [ { "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0", "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0", "types": [ "vegetarian_restaurant", "vegan_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "nationalPhoneNumber": "0433 479 794", "internationalPhoneNumber": "+61 433 479 794", "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Spiced @ Barangaroo", "languageCode": "en" }, ... }, ... ] }
সুতরাং, আপনি ফর্মে এই API-গুলোর জন্য একটি ফিল্ড মাস্ক নির্দিষ্ট করে দেন:
places[.secondLevelField][.thirdLevelField][...]
আপনি যদি শুধুমাত্র formattedAddress এবং displayName ফিল্ডগুলো ফেরত পেতে চান, তাহলে আপনার ফিল্ড মাস্কটি এভাবে সেট করুন:
places.formattedAddress,places.displayName
displayName নির্দিষ্ট করলে displayName এর text এবং language উভয় ফিল্ডই অন্তর্ভুক্ত হয়। যদি আপনি শুধু text ফিল্ডটি চান, তাহলে ফিল্ড মাস্কটি এভাবে সেট করুন:
places.formattedAddress,places.displayName.text
স্থানের বিবরণের জন্য একটি প্রতিক্রিয়া ফিল্ড মাস্ক সংজ্ঞায়িত করুন (নতুন)
Place Details (New) নিম্নলিখিত ফর্মে একটি একক Place অবজেক্ট ফেরত দেয়:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
সুতরাং, আপনি Place অবজেক্টের যে ফিল্ডগুলো ফেরত পেতে চান, সেগুলো উল্লেখ করার মাধ্যমে এই API-এর জন্য একটি ফিল্ড মাস্ক নির্দিষ্ট করেন:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: formattedAddress,displayName" \ https://places.googleapis.com/v1/places/ChIJj61dQgK6j4AR4GeTYWZsKWw
gRPC কল
gRPC-এর জন্য, রেসপন্স ফিল্ড মাস্ক ধারণকারী একটি ভেরিয়েবল সেট করুন। এরপর আপনি সেই ভেরিয়েবলটি রিকোয়েস্টে পাস করতে পারবেন।
const ( fieldMask = "places.formattedAddress,places.displayName" )
ক্ষেত্রের পথের বিবেচ্য বিষয়গুলি
প্রতিক্রিয়ায় শুধু আপনার প্রয়োজনীয় ফিল্ডগুলো অন্তর্ভুক্ত করুন। শুধু আপনার দরকারি ফিল্ডগুলো ফেরত দেওয়া হচ্ছে:
- Decreases processing times , so your results are returned with a lower latency.
- ভবিষ্যতে এপিআই আরও রেসপন্স ফিল্ড যোগ করলে এবং সেই নতুন ফিল্ডগুলোর জন্য অতিরিক্ত গণনার সময় প্রয়োজন হলে, এটি স্থিতিশীল লেটেন্সি পারফরম্যান্স নিশ্চিত করে । আপনি যদি সমস্ত ফিল্ড নির্বাচন করেন, অথবা যদি আপনি শীর্ষ স্তরে সমস্ত ফিল্ড নির্বাচন করেন, তাহলে সমস্ত নতুন ফিল্ড স্বয়ংক্রিয়ভাবে আপনার রেসপন্সে অন্তর্ভুক্ত হয়ে গেলে আপনি পারফরম্যান্সের অবনতি অনুভব করতে পারেন।
- এর ফলে প্রতিক্রিয়ার আকার ছোট হয় , যা নেটওয়ার্ক থ্রুপুট বাড়িয়ে তোলে।
- এটি নিশ্চিত করে যে আপনি অপ্রয়োজনীয় ডেটার জন্য অনুরোধ করছেন না , যা অপ্রয়োজনীয় প্রক্রিয়াকরণের সময় এবং বিলের পরিমাণ এড়াতে সাহায্য করে।