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

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

परिचय

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

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

  • जगह की जानकारी (नई) FieldMask पैरामीटर
  • आस-पास की जगहों के लिए खोज (नई सुविधा) FieldMask पैरामीटर
  • टेक्स्ट से खोजें (नई सुविधा) FieldMask पैरामीटर

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

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

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

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

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

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

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

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

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

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

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

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

उदाहरण के लिए, Text Search (New) से मिले पूरे रिस्पॉन्स ऑब्जेक्ट को देखने के लिए:

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"
  }
  ...
}

इसलिए, इस एपीआई के लिए फ़ील्ड मास्क तय किया जाता है. इसके लिए, 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"
)

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

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

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