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

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

परिचय

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

इस्तेमाल किए जा सकने वाले डेटा फ़ील्ड और उनसे जुड़े एसकेयू की पूरी सूची, जगह के लिए डेटा फ़ील्ड (नया) में देखी जा सकती है. हर एपीआई के लिए खास फ़ील्ड की जानकारी पाने के लिए, यहां देखें:

  • Place Details (New) FieldMask पैरामीटर
  • आस-पास की जगहों की जानकारी (नया) FieldMask पैरामीटर
  • टेक्स्ट से खोजें (नया) FieldMask पैरामीटर

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

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

जवाब के लिए फ़ील्ड मास्क तय करना

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

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

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

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

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

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

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

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

आस-पास की जगहों की जानकारी (नया वर्शन) और टेक्स्ट से खोजें (नया वर्शन) अनुरोध करने पर, जवाब के 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 ऑब्जेक्ट मिलता है:

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

फ़ील्ड पाथ के बारे में ज़रूरी बातें

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

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