वापस पाने के लिए फ़ील्ड चुनें
रास्ते या रास्तों के मैट्रिक्स का अनुरोध करते समय, आपको फ़ील्ड मास्क का इस्तेमाल करना होगा. इससे यह तय किया जा सकेगा कि जवाब में कौनसी जानकारी शामिल होनी चाहिए. लौटाए गए फ़ील्ड की कोई डिफ़ॉल्ट सूची नहीं होती. अगर फ़ील्ड मास्क तय नहीं किया जाता है, तो ये तरीके गड़बड़ी का मैसेज दिखाते हैं.
फ़ील्ड मास्क का इस्तेमाल करने से, यह भी पक्का किया जा सकता है कि आपने गैर-ज़रूरी डेटा का अनुरोध न किया हो. इससे जवाब मिलने में लगने वाले समय को कम करने में मदद मिलती है. साथ ही, ऐसी जानकारी नहीं मिलती जिसकी आपके सिस्टम को ज़रूरत नहीं है.
आपको जिन फ़ील्ड की ज़रूरत है उनकी सूची, रिस्पॉन्स फ़ील्ड मास्क में दी जाती है. इसके बाद, यूआरएल पैरामीटर $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 फ़ील्ड की वैल्यू चाहिए, तो फ़ील्ड मास्क इस तरह होगा:distanceMeterssteps
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 देखें.