ভূমিকা
যখন আপনি স্থানের বিবরণ (নতুন) , কাছাকাছি অনুসন্ধান (নতুন) , অথবা পাঠ্য অনুসন্ধান (নতুন) পদ্ধতিগুলি কল করেন, তখন আপনাকে অবশ্যই কোন ক্ষেত্রগুলি প্রতিক্রিয়াতে ফেরত দিতে চান তা নির্দিষ্ট করতে হবে। ফেরত ক্ষেত্রগুলির কোনও ডিফল্ট তালিকা নেই। যদি আপনি এই তালিকাটি বাদ দেন, তাহলে পদ্ধতিগুলি একটি ত্রুটি ফেরত পাঠাবে।
সমর্থিত ডেটা ফিল্ড এবং তাদের সংশ্লিষ্ট SKU গুলির একটি সম্পূর্ণ তালিকা প্লেস ডেটা ফিল্ডস (নতুন) -এ পাওয়া যাবে। প্রতিটি API-এর জন্য নির্দিষ্ট ফিল্ড সম্পর্কে তথ্যের জন্য, নিম্নলিখিতটি দেখুন:
- স্থানের বিবরণ (নতুন) ফিল্ডমাস্ক প্যারামিটার
- কাছাকাছি অনুসন্ধান (নতুন) ফিল্ডমাস্ক প্যারামিটার
- টেক্সট অনুসন্ধান (নতুন) ফিল্ডমাস্ক প্যারামিটার
আপনি একটি রেসপন্স ফিল্ড মাস্ক তৈরি করে ফিল্ড তালিকাটি নির্দিষ্ট করেন। তারপর আপনি $fields অথবা fields প্যারামিটার ব্যবহার করে অথবা HTTP অথবা gRPC হেডার X-Goog-FieldMask ব্যবহার করে রেসপন্স ফিল্ড মাস্কটি যেকোনো পদ্ধতিতে পাস করেন।
ফিল্ড মাস্কিং একটি ভালো ডিজাইন অনুশীলন যা নিশ্চিত করে যে আপনি অপ্রয়োজনীয় ডেটা অনুরোধ করবেন না, যা অপ্রয়োজনীয় প্রক্রিয়াকরণ সময় এবং বিলিং চার্জ এড়াতে সাহায্য করে।
একটি প্রতিক্রিয়া ক্ষেত্র মুখোশ সংজ্ঞায়িত করুন
রেসপন্স ফিল্ড মাস্ক হল কমা দ্বারা পৃথক করা পাথের একটি তালিকা, যেখানে প্রতিটি পাথ রেসপন্স বডিতে একটি অনন্য ক্ষেত্র নির্দিষ্ট করে। পাথটি শীর্ষ-স্তরের রেসপন্স বার্তা থেকে শুরু হয় এবং নির্দিষ্ট ক্ষেত্রের জন্য একটি বিন্দু-বিচ্ছিন্ন পাথ ব্যবহার করে।
নিম্নরূপ একটি ক্ষেত্র পথ তৈরি করুন:
topLevelField[.secondLevelField][.thirdLevelField][...]
আপনি * এর ফিল্ড মাস্ক ব্যবহার করে সমস্ত ফিল্ডের জন্য অনুরোধ করতে পারেন।
ফিল্ড মাস্ক কীভাবে তৈরি করবেন সে সম্পর্কে আরও তথ্যের জন্য, field_mask.proto দেখুন।
কোন ফিল্ড মাস্ক ব্যবহার করবেন তা নির্ধারণ করুন
আপনি কোন ফিল্ড মাস্ক ব্যবহার করতে চান তা এখানে নির্ধারণ করতে পারেন:
-
*এর ফিল্ড মাস্ক ব্যবহার করে সমস্ত ফিল্ডের অনুরোধ করুন। - উত্তরে ক্ষেত্রগুলির শ্রেণিবিন্যাস দেখুন এবং আপনি কোন ক্ষেত্রগুলি চান তা নির্ধারণ করুন।
- ফিল্ড হায়ারার্কি ব্যবহার করে আপনার ফিল্ড মাস্ক তৈরি করুন।
কাছাকাছি অনুসন্ধান (নতুন) এবং পাঠ্য অনুসন্ধান (নতুন) এর জন্য একটি প্রতিক্রিয়া ক্ষেত্র মাস্ক সংজ্ঞায়িত করুন
কাছাকাছি অনুসন্ধান (নতুন) এবং পাঠ্য অনুসন্ধান (নতুন) প্রতিক্রিয়ার 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
স্থানের বিবরণের জন্য একটি প্রতিক্রিয়া ক্ষেত্র মাস্ক নির্ধারণ করুন (নতুন)
স্থান বিবরণী (নতুন) একটি একক স্থান বস্তু এই ফর্মে ফেরত পাঠায়:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
অতএব, আপনি যে প্লেস অবজেক্টটি ফেরত দিতে চান তার ক্ষেত্রগুলি নির্দিষ্ট করে এই 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-এর জন্য, রেসপন্স ফিল্ড মাস্ক ধারণকারী একটি ভেরিয়েবল সেট করুন। তারপর আপনি সেই ভেরিয়েবলটি অনুরোধে পাস করতে পারেন।
const ( fieldMask = "places.formattedAddress,places.displayName" )
ক্ষেত্রের পথ বিবেচনা
উত্তরে শুধুমাত্র আপনার প্রয়োজনীয় ক্ষেত্রগুলি অন্তর্ভুক্ত করুন। আপনার প্রয়োজনীয় ক্ষেত্রগুলিই ফেরত দিন:
- প্রক্রিয়াকরণের সময় কমায় , তাই আপনার ফলাফল কম ল্যাটেন্সির সাথে ফেরত পাঠানো হয়।
- ভবিষ্যতে API যদি আরও প্রতিক্রিয়া ক্ষেত্র যোগ করে এবং সেই নতুন ক্ষেত্রগুলির জন্য অতিরিক্ত গণনার সময় প্রয়োজন হয় তবে স্থিতিশীল ল্যাটেন্সি কর্মক্ষমতা নিশ্চিত করে । আপনি যদি সমস্ত ক্ষেত্র নির্বাচন করেন, অথবা যদি আপনি শীর্ষ স্তরে সমস্ত ক্ষেত্র নির্বাচন করেন, তাহলে আপনার প্রতিক্রিয়ায় সমস্ত নতুন ক্ষেত্র স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হলে আপনার কর্মক্ষমতা হ্রাস পেতে পারে।
- এর ফলে রেসপন্স সাইজ ছোট হয় , যা নেটওয়ার্কের গতি বৃদ্ধিতে অবদান রাখে।
- নিশ্চিত করে যে আপনি অপ্রয়োজনীয় ডেটা অনুরোধ করবেন না , যা অপ্রয়োজনীয় প্রক্রিয়াকরণ সময় এবং বিল করা চার্জ এড়াতে সাহায্য করে।