परिचय
जगह के बारे में ज़्यादा जानकारी (नया), आस-पास की जगहों की जानकारी (नया) या टेक्स्ट से खोजें (नया) तरीकों का इस्तेमाल करते समय, आपको यह बताना होगा कि जवाब में आपको कौनसे फ़ील्ड चाहिए. डिफ़ॉल्ट रूप से, लौटाए गए फ़ील्ड की कोई सूची नहीं होती. इस सूची को शामिल न करने पर, ये तरीके गड़बड़ी दिखाते हैं.
इस्तेमाल किए जा सकने वाले डेटा फ़ील्ड और उनके एसकेयू की पूरी सूची, जगह के लिए डेटा फ़ील्ड (नया) में देखी जा सकती है. हर एपीआई के लिए खास तौर पर उपलब्ध फ़ील्ड के बारे में जानकारी पाने के लिए, यहां जाएं:
- जगह की जानकारी (नई) FieldMask पैरामीटर
- आस-पास की जगहों के लिए खोज (नई सुविधा) FieldMask पैरामीटर
- टेक्स्ट से खोजें (नई सुविधा) FieldMask पैरामीटर
जवाब के फ़ील्ड मास्क को बनाकर, फ़ील्ड की सूची तय की जाती है. इसके बाद, $fields या fields पैरामीटर का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को दोनों में से किसी एक तरीके से पास करें. इसके अलावा, एचटीटीपी या gRPC हेडर X-Goog-FieldMask का इस्तेमाल करके भी ऐसा किया जा सकता है.
फ़ील्ड मास्किंग, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जा सकता है कि आपने बिना वजह डेटा का अनुरोध न किया हो. इससे, प्रोसेसिंग में लगने वाले समय और बिलिंग के शुल्क को कम करने में मदद मिलती है.
जवाब के फ़ील्ड मास्क को तय करना
जवाब के फ़ील्ड मास्क में, कॉमा से अलग किए गए पाथ की सूची होती है. इसमें हर पाथ, जवाब के मुख्य हिस्से में मौजूद किसी यूनीक फ़ील्ड के बारे में बताता है. पाथ, टॉप-लेवल के जवाब वाले मैसेज से शुरू होता है. साथ ही, इसमें दिए गए फ़ील्ड के लिए, डॉट से अलग किया गया पाथ इस्तेमाल किया जाता है.
फ़ील्ड पाथ इस तरह बनाएं:
topLevelField[.secondLevelField][.thirdLevelField][...]
* फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड के लिए अनुरोध किया जा सकता है.
फ़ील्ड मास्क बनाने के तरीके के बारे में ज़्यादा जानने के लिए, field_mask.proto देखें.
तय करें कि किन फ़ील्ड मास्क का इस्तेमाल करना है
यहां बताया गया है कि आपको किन फ़ील्ड मास्क का इस्तेमाल करना है:
*फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड का अनुरोध करें.- जवाब में मौजूद फ़ील्ड की हैरारकी देखें और तय करें कि आपको कौनसे फ़ील्ड चाहिए.
- फ़ील्ड के क्रम का इस्तेमाल करके, फ़ील्ड मास्क बनाएं.
Nearby Search (New) और Text Search (New) के लिए रिस्पॉन्स फ़ील्ड मास्क तय करना
आस-पास की जगहों की जानकारी (नया) और टेक्स्ट से खोजें (नया) अनुरोधों के जवाब में, 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 ऑब्जेक्ट मिलता है. यह ऑब्जेक्ट इस फ़ॉर्म में होता है:
{ "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" )
फ़ाइल पाथ के बारे में ज़रूरी बातें
जवाब में सिर्फ़ वे फ़ील्ड शामिल करें जिनकी आपको ज़रूरत है. सिर्फ़ उन फ़ील्ड की वैल्यू वापस पाना जिनकी आपको ज़रूरत है:
- इससे प्रोसेस में लगने वाला समय कम हो जाता है. इसलिए, आपको नतीजे कम समय में मिल जाते हैं.
- अगर एपीआई आने वाले समय में जवाब के ज़्यादा फ़ील्ड जोड़ता है और उन नए फ़ील्ड के लिए ज़्यादा समय की ज़रूरत होती है, तो इससे यह पक्का होता है कि लेटेन्सी की परफ़ॉर्मेंस स्थिर रहे. अगर आपने सभी फ़ील्ड चुने हैं या टॉप लेवल पर सभी फ़ील्ड चुने हैं, तो हो सकता है कि आपकी परफ़ॉर्मेंस में गिरावट आए. ऐसा तब होता है, जब सभी नए फ़ील्ड को आपकी प्रतिक्रिया में अपने-आप शामिल कर लिया जाता है.
- इससे जवाब का साइज़ छोटा हो जाता है. इसका मतलब है कि नेटवर्क थ्रूपुट बढ़ जाता है.
- इससे यह पक्का होता है कि आपने गैर-ज़रूरी डेटा का अनुरोध नहीं किया है. इससे गैर-ज़रूरी प्रोसेसिंग में लगने वाले समय और बिल किए गए शुल्कों से बचने में मदद मिलती है.