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

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

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

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

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

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

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

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

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

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

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

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

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

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

आस-पास खोज (नया) और टेक्स्ट सर्च (नया) में, 'जगह की जानकारी' में दिए गए ऑब्जेक्ट का कलेक्शन दिखाता है तो जवाब के 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 की वैल्यू तय करने में, इसके text और language, दोनों फ़ील्ड शामिल हैं displayName. अगर आपको सिर्फ़ 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"
)

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

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

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