लौटाने के लिए फ़ील्ड चुनें

जगह की जानकारी (नया), आस-पास खोजने की सुविधा (नया) या टेक्स्ट सर्च (नई) सुविधा को कॉल करते समय, आपको यह बताना होगा कि आपको जवाब में कौनसे फ़ील्ड शामिल करने हैं. लौटाए गए फ़ील्ड की कोई डिफ़ॉल्ट सूची नहीं है. अगर इस सूची को छोड़ दिया जाता है, तो ये तरीके गड़बड़ी लौटाते हैं.

रिस्पॉन्स फ़ील्ड मास्क बनाकर, फ़ील्ड की सूची बनाई जा सकती है. इसके बाद, $fields या fields पैरामीटर या एचटीटीपी या gRPC हेडर X-Goog-FieldMask का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को किसी भी तरीके में पास किया जा सकता है.

फ़ील्ड मास्किंग, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जाता है कि ज़रूरत के हिसाब से डेटा मांगने की ज़रूरत न पड़े. इससे प्रोसेसिंग में लगने वाले समय और बिलिंग शुल्क से बचा जा सकता है.

रिस्पॉन्स फ़ील्ड मास्क तय करें

रिस्पॉन्स फ़ील्ड मास्क, पाथ की कॉमा-सेपरेटेड लिस्ट होती है. इसमें हर पाथ, रिस्पॉन्स मैसेज में एक खास फ़ील्ड के बारे में बताता है. पाथ, टॉप लेवल रिस्पॉन्स मैसेज से शुरू होता है और तय किए गए फ़ील्ड के लिए, बिंदु से अलग किए गए पाथ का इस्तेमाल करता है.

फ़ील्ड पाथ इस तरह बनाएं:

topLevelField[.secondLevelField][.thirdLevelField][...]

* के फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड के लिए अनुरोध किया जा सकता है.

फ़ील्ड मास्क बनाने के बारे में ज़्यादा जानकारी के लिए, field_mask.proto देखें.

तय करें कि कौनसे फ़ील्ड मास्क का इस्तेमाल करना है

यहां बताया गया है कि आपको कौनसे फ़ील्ड मास्क इस्तेमाल करने हैं, यह कैसे तय किया जा सकता है:

  1. `*` के फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड का अनुरोध करें.
  2. जवाब में मौजूद फ़ील्ड की हैरारकी देखें और तय करें कि आपको किन फ़ील्ड की ज़रूरत है.
  3. फ़ील्ड हैरारकी का इस्तेमाल करके, अपना फ़ील्ड मास्क बनाएं.

आस-पास की खोज के लिए (नया) और टेक्स्ट सर्च (नया) के लिए रिस्पॉन्स फ़ील्ड मास्क तय करें

Nearby Search (नया) और टेक्स्ट सर्च (नया) रिस्पॉन्स के places फ़ील्ड में, 'जगह की जानकारी' से जुड़े ऑब्जेक्ट का अरे दिखाते हैं. इन एपीआई के लिए, 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

जगह की जानकारी के लिए रिस्पॉन्स फ़ील्ड मास्क तय करें (नया)

जगह की जानकारी, फ़ॉर्म में एक जगह की जानकारी देती है:

{
  "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g",
  "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g",
  "types": [
    "locality",
    "political"
  ],
  "formattedAddress": "Trinidad, CA 95570, USA",
  "displayName": {
    "text": "Trinidad",
    "languageCode": "en"
  }
  ...
}

इसलिए, आपको जिस प्लेस ऑब्जेक्ट को लौटाना है उसके फ़ील्ड तय करके, इस एपीआई के लिए फ़ील्ड मास्क तय किया जाता है:

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"
)

फ़ील्ड पाथ पर ध्यान देना

सिर्फ़ वे फ़ील्ड शामिल करें जिनकी आपको जवाब में ज़रूरत है. अपनी ज़रूरत के फ़ील्ड दिखाएं:

  • प्रोसेस होने में लगने वाले समय को कम करता है. इसलिए, आपके नतीजों को दिखने में कम समय लगता है.
  • अगर एपीआई आने वाले समय में जवाब देने के लिए ज़्यादा फ़ील्ड जोड़ता है, तो यह पक्का करता है कि इंतज़ार के समय की परफ़ॉर्मेंस स्थिर रहे. साथ ही, उन नए फ़ील्ड को कंप्यूटेशनल करने में ज़्यादा समय लगे. अगर सभी फ़ील्ड चुने जाते हैं या टॉप लेवल पर सभी फ़ील्ड चुने जाते हैं, तो आपके जवाब में सभी नए फ़ील्ड अपने-आप शामिल होने पर, परफ़ॉर्मेंस में गिरावट आ सकती है.
  • नतीजों का साइज़ छोटा होता है. इससे नेटवर्क की क्षमता बढ़ जाती है.
  • पक्का करती है कि आप गैर-ज़रूरी डेटा का अनुरोध न करें. इससे प्रोसेसिंग में लगने वाले समय और शुल्क से बचने में मदद मिलती है.