परिचय
जगह के बारे में ज़्यादा जानकारी (नया), आस-पास की जगहों की जानकारी (नया) या टेक्स्ट से खोजें (नया) तरीकों को कॉल करते समय, आपको यह बताना होगा कि जवाब में आपको कौनसे फ़ील्ड चाहिए. जवाब में मिले फ़ील्ड की कोई डिफ़ॉल्ट सूची नहीं होती. इस सूची को शामिल न करने पर, तरीकों से गड़बड़ी का मैसेज मिलता है.
इस्तेमाल किए जा सकने वाले डेटा फ़ील्ड और उनके एसकेयू की पूरी सूची, जगह के लिए डेटा फ़ील्ड (नया) में देखी जा सकती है. हर एपीआई के लिए खास फ़ील्ड के बारे में जानकारी पाने के लिए, यहां जाएं:
- Place Details (New) FieldMask पैरामीटर
- आस-पास की जगहों के लिए खोज (नई सुविधा) FieldMask पैरामीटर
- टेक्स्ट से खोजें (नई सुविधा) FieldMask पैरामीटर
जवाब के फ़ील्ड मास्क बनाकर, फ़ील्ड की सूची तय की जाती है. इसके बाद, पैरामीटर $fields या fields का इस्तेमाल करके या एचटीटीपी या gRPC हेडर X-Goog-FieldMask का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को किसी भी तरीके से पास किया जाता है.
फ़ील्ड मास्किंग, डिज़ाइन करने का एक अच्छा तरीका है. इससे यह पक्का किया जाता है कि आपने ग़ैर-ज़रूरी डेटा का अनुरोध न किया हो. इससे, ग़ैर-ज़रूरी प्रोसेसिंग टाइम और बिलिंग शुल्क से बचने में मदद मिलती है.
रिस्पॉन्स फ़ील्ड मास्क तय करना
रिस्पॉन्स फ़ील्ड मास्क, कॉमा से अलग किए गए पाथ की सूची होती है. इसमें हर पाथ, रिस्पॉन्स बॉडी में मौजूद किसी यूनीक फ़ील्ड के बारे में बताता है. पाथ, टॉप-लेवल के जवाब वाले मैसेज से शुरू होता है. साथ ही, इसमें दिए गए फ़ील्ड तक पहुंचने के लिए, डॉट से अलग किए गए पाथ का इस्तेमाल किया जाता है.
फ़ील्ड पाथ इस तरह बनाएं:
topLevelField[.secondLevelField][.thirdLevelField][...]
* के फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड के लिए अनुरोध किया जा सकता है.
फ़ील्ड मास्क बनाने के तरीके के बारे में ज़्यादा जानने के लिए, field_mask.proto देखें.
तय करें कि किन फ़ील्ड मास्क का इस्तेमाल करना है
यहां बताया गया है कि आपको कौनसे फ़ील्ड मास्क इस्तेमाल करने हैं:
*के फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड का अनुरोध करें.- जवाब में मौजूद फ़ील्ड की क्रम-व्यवस्था देखें और तय करें कि आपको कौनसे फ़ील्ड चाहिए.
- फ़ील्ड के क्रम का इस्तेमाल करके, फ़ील्ड मास्क बनाएं.
आस-पास की जगहों की जानकारी (नया) और टेक्स्ट से खोजें (नया) के लिए, रिस्पॉन्स फ़ील्ड मास्क तय करना
आस-पास की जगहों की जानकारी (नया) और टेक्स्ट से खोजें (नया) अनुरोधों के जवाब में, places फ़ील्ड में Place ऑब्जेक्ट का कलेक्शन मिलता है. इन एपीआई के लिए, 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" }, ... }, ... ] }
इसलिए, इन एपीआई के लिए फ़ील्ड मास्क को इस फ़ॉर्म में तय किया जाता है:
places[.secondLevelField][.thirdLevelField][...]
अगर आपको सिर्फ़ formattedAddress और displayName फ़ील्ड की वैल्यू चाहिए, तो फ़ील्ड मास्क को इस तरह सेट करें:
places.formattedAddress,places.displayName
displayName की वैल्यू तय करने में, displayName के text और language, दोनों फ़ील्ड शामिल होते हैं. अगर आपको सिर्फ़ text फ़ील्ड चाहिए, तो फ़ील्ड मास्क को इस तरह सेट करें:
places.formattedAddress,places.displayName.text
Place Details (New) के लिए, रिस्पॉन्स फ़ील्ड मास्क तय करना
Place Details (नया) एक Place ऑब्जेक्ट देता है. यह ऑब्जेक्ट इस फ़ॉर्म में होता है:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
इसलिए, इस एपीआई के लिए फ़ील्ड मास्क तय किया जाता है. इसके लिए, Place ऑब्जेक्ट के उन फ़ील्ड की जानकारी दी जाती है जिन्हें आपको वापस पाना है:
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" )
फ़ाइल पाथ के बारे में ज़रूरी बातें
जवाब में सिर्फ़ वे फ़ील्ड शामिल करें जिनकी आपको ज़रूरत है. सिर्फ़ उन फ़ील्ड को वापस लाना जिनकी आपको ज़रूरत है:
- प्रोसेसिंग में लगने वाला समय कम हो जाता है, इसलिए आपको नतीजे कम समय में मिल जाते हैं.
- अगर आने वाले समय में एपीआई, जवाब के लिए ज़्यादा फ़ील्ड जोड़ता है और उन नए फ़ील्ड के लिए ज़्यादा कंप्यूटेशन समय की ज़रूरत होती है, तो यह पक्का करता है कि इंतज़ार का समय स्थिर रहे. सभी फ़ील्ड चुनने पर या सबसे ऊपर मौजूद सभी फ़ील्ड चुनने पर, आपको परफ़ॉर्मेंस में गिरावट देखने को मिल सकती है. ऐसा तब होता है, जब सभी नए फ़ील्ड को आपके जवाब में अपने-आप शामिल कर लिया जाता है.
- इससे रिस्पॉन्स का साइज़ छोटा हो जाता है. इसका मतलब है कि नेटवर्क थ्रूपुट बढ़ जाता है.
- यह पक्का करता है कि आपने ग़ैर-ज़रूरी डेटा का अनुरोध न किया हो. इससे डेटा को प्रोसेस करने में लगने वाले ग़ैर-ज़रूरी समय और बिल किए गए शुल्क से बचने में मदद मिलती है.