वापस लाने के लिए फ़ील्ड चुनें
रास्ते या रास्ते की मैट्रिक्स का अनुरोध करते समय, आपको फ़ील्ड मास्क का इस्तेमाल करना होगा. इससे यह तय किया जा सकेगा कि जवाब में कौनसी जानकारी शामिल होनी चाहिए. लौटाए गए फ़ील्ड की कोई डिफ़ॉल्ट सूची नहीं होती. अगर आपने फ़ील्ड मास्क तय नहीं किया है, तो ये तरीके गड़बड़ी का मैसेज दिखाते हैं.
फ़ील्ड मास्क का इस्तेमाल करने से, यह भी पक्का किया जा सकता है कि आपने गैर-ज़रूरी डेटा का अनुरोध न किया हो. इससे जवाब मिलने में लगने वाले समय को कम करने में मदद मिलती है. साथ ही, ऐसी जानकारी नहीं मिलती जिसकी आपके सिस्टम को ज़रूरत नहीं है.
आपको रिस्पॉन्स फ़ील्ड मास्क में, ज़रूरी फ़ील्ड की सूची देनी होती है. इसके बाद, यूआरएल पैरामीटर $fields
या fields
का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को किसी भी तरीके से पास करें. इसके अलावा, एचटीटीपी या gRPC हेडर X-Goog-FieldMask
का इस्तेमाल करके भी रिस्पॉन्स फ़ील्ड मास्क को पास किया जा सकता है.
यूआरएल पैरामीटर के बारे में ज़्यादा जानने के लिए, सिस्टम पैरामीटर देखें.
जवाब के फ़ील्ड मास्क को तय करना
रिस्पॉन्स फ़ील्ड मास्क, कॉमा से अलग की गई पाथ की सूची होती है. इसमें हर पाथ, रिस्पॉन्स मैसेज में मौजूद किसी यूनीक फ़ील्ड के बारे में बताता है. पाथ, टॉप-लेवल के जवाब वाले मैसेज से शुरू होता है. साथ ही, इसमें खास फ़ील्ड के लिए डॉट से अलग किया गया पाथ इस्तेमाल किया जाता है.
फ़ील्ड पाथ को इस तरह बनाएं और तय करें:
- उन फ़ील्ड को ढूंढें जिनमें आपकी ज़रूरत की जानकारी मौजूद है. ज़्यादा जानकारी के लिए, फ़ील्ड के रेफ़रंस देखें.
- आपको जिन फ़ील्ड की ज़रूरत है उनके पाथ तय करें और उनके लिए फ़ील्ड मास्क बनाएं: ज़्यादा जानकारी के लिए, तय करें कि आपको किस फ़ील्ड मास्क का इस्तेमाल करना है लेख पढ़ें.
आपको जिन फ़ील्ड की ज़रूरत है उनके लिए फ़ील्ड मास्क को कॉमा लगाकर अलग-अलग करें. उदाहरण के लिए, अगर आपको रास्ते के लेग के लिए
distanceMeters
और रास्ते के हर लेग के चरण की अवधि का अनुरोध करना है, तो दोनों को कॉमा लगाकर अलग करें. साथ ही, उनके बीच में कोई स्पेस न छोड़ें:routes.legs.distanceMeters,routes.legs.steps.duration
अपने एपीआई अनुरोध के साथ फ़ील्ड मास्क भेजें. उदाहरण के लिए, कर्ल अनुरोध में, फ़ील्ड मास्क को
-H
औरX-Goog-FieldMask
के साथ तय किया जाएगा:-H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
फ़ील्ड के रेफ़रंस
फ़ील्ड मास्क के ज़रिए, जवाब में अनुरोध किए जा सकने वाले फ़ील्ड देखने के लिए, यहां दी गई सूची में लिंक किए गए Routes API Compute Routes या Compute Route Matrix के रेफ़रंस देखें. रेफ़रंस में दिखाए गए तरीके से, कैमल केस में फ़ील्ड तय करें. उदाहरण के लिए, routePreference
.
इन रेफ़रंस में उपलब्ध फ़ील्ड शामिल होते हैं. हालांकि, फ़ील्ड मास्क का पूरा पाथ तय करने के लिए, आपको फ़ील्ड के क्रम को देखना होगा. फ़ील्ड के क्रम के बारे में जानकारी पाने के लिए, तय करें कि आपको किस फ़ील्ड मास्क का इस्तेमाल करना है लेख पढ़ें.
- रास्ते का हिसाब लगाने के लिए फ़ील्ड मास्क
- Compute Route Matrix के लिए फ़ील्ड मास्क
- REST: यह तय करता है कि रिस्पॉन्स बॉडी के किन फ़ील्ड को दिखाना है.
- gRPC: यह RouteMatrixElement ऑब्जेक्ट के उन फ़ील्ड के बारे में बताता है जिन्हें रिस्पॉन्स में दिखाना है.
तय करें कि किन फ़ील्ड मास्क का इस्तेमाल करना है
यहां यह तय करने का तरीका बताया गया है कि आपको किन फ़ील्ड का इस्तेमाल करना है. साथ ही, उनके लिए फ़ील्ड मास्क बनाने का तरीका भी बताया गया है:
*
के फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड के लिए अनुरोध करें.- आपको जिन फ़ील्ड की वैल्यू चाहिए उनके लिए, जवाब में फ़ील्ड के क्रम को देखें.
इस फ़ॉर्मैट का इस्तेमाल करके, अपने फ़ील्ड मास्क बनाएं. इसके लिए, पिछले चरण में दिखाए गए फ़ील्ड के क्रम का इस्तेमाल करें:
topLevelField[.secondLevelField][.thirdLevelField][...]
उदाहरण के लिए, किसी रास्ते के इस अधूरे जवाब के लिए:
"routes": [ { "legs": [ { "steps": [ {"distanceMeters": 119}, {"distanceMeters": 41} ] } ], "distanceMeters": 160 } ]
अगर आपको सिर्फ़ रास्ते के लेग के लिए distanceMeters
फ़ील्ड की वैल्यू चाहिए, तो फ़ील्ड मास्क इस तरह होगा. इसका मतलब है कि आपको पिछले सैंपल में मौजूद आखिरी distanceMeters
की वैल्यू चाहिए:
routes.legs.distanceMeters
अगर आपको रास्ते के हर लेग के लिए distanceMeters
फ़ील्ड की वैल्यू चाहिए, तो फ़ील्ड मास्क इस तरह होगा:distanceMeters
steps
routes.legs.steps.distanceMeters
अगर आपको ऊपर दिए गए नतीजे के साथ दोनों फ़ील्ड वापस लाने हैं, तो आपका फ़ील्ड मास्क यह होगा:
routes.legs.distanceMeters,routes.legs.steps.distanceMeters
फ़ीड मास्क के पाथ का उदाहरण
इस सेक्शन में, REST और gRPC कॉल में रिस्पॉन्स फ़ील्ड मास्क के हिस्से के तौर पर फ़ील्ड पाथ तय करने के बारे में ज़्यादा उदाहरण दिए गए हैं.
computeRoutes
को REST कॉल करें
पहले उदाहरण में, किसी रास्ते का हिसाब लगाने के लिए, computeRoutes
तरीके का इस्तेमाल करके REST कॉल किया गया है. इस उदाहरण में, हेडर में फ़ील्ड मास्क तय किए गए हैं, ताकि रिस्पॉन्स में रूट distanceMeters
और duration
फ़ील्ड दिखाए जा सकें. फ़ील्ड के नाम से पहले routes
लगाना न भूलें.
X-Goog-FieldMask: routes.distanceMeters,routes.duration
computeRouteMatrix
को REST कॉल करें
रास्ते की मैट्रिक्स का हिसाब लगाने के लिए इस्तेमाल किए जाने वाले REST computeRouteMatrix
तरीके के लिए, हेडर में यह तय करें कि मूल जगह और मंज़िल के हर कॉम्बिनेशन के लिए originIndex
, destinationIndex
, और duration
को दिखाया जाए:
X-Goog-FieldMask: originIndex,destinationIndex,duration
gRPC कॉल
gRPC के लिए, ऐसा वैरिएबल सेट करें जिसमें रिस्पॉन्स फ़ील्ड मास्क शामिल हो. इसके बाद, उस वैरिएबल को अनुरोध में पास किया जा सकता है.
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
फ़ाइल पाथ के बारे में ज़रूरी बातें
जवाब में सिर्फ़ वे फ़ील्ड शामिल करें जिनकी आपको ज़रूरत है, ताकि आपको सिर्फ़ वे फ़ील्ड मिलें जिनकी आपको ज़रूरत है:
- प्रोसेसिंग में लगने वाला समय कम हो जाता है. इसलिए, आपको नतीजे कम समय में मिल जाते हैं.
- इससे यह पक्का होता है कि लेटेन्सी की परफ़ॉर्मेंस स्थिर रहे. अगर आपने सभी फ़ील्ड चुने हैं या टॉप लेवल पर सभी फ़ील्ड चुने हैं, तो नए फ़ील्ड जोड़े जाने पर परफ़ॉर्मेंस में गिरावट आ सकती है. ऐसा इसलिए, क्योंकि ये फ़ील्ड आपकी प्रतिक्रिया में अपने-आप शामिल हो जाते हैं.
- इससे जवाब का साइज़ छोटा हो जाता है. इसका मतलब है कि नेटवर्क थ्रूपुट बढ़ जाता है.
- इससे यह पक्का होता है कि आपने ज़रूरत से ज़्यादा डेटा का अनुरोध न किया हो. इससे, प्रोसेस करने में लगने वाले समय और बिल किए गए शुल्क से बचा जा सकता है.
फ़ील्ड मास्क बनाने के बारे में ज़्यादा जानकारी के लिए, field_mask.proto देखें.