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

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

परिचय

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

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

  • जगह के बारे में ज़्यादा जानकारी देने वाले (नए) 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 ऑब्जेक्ट इस फ़ॉर्म में दिखता है:

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

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

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

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