नतीजों में दिखाने के लिए फ़ील्ड चुनना
रास्ते या रास्ते के मैट्रिक्स का अनुरोध करते समय, आपको फ़ील्ड मास्क का इस्तेमाल करना होगा. इससे यह तय किया जा सकेगा कि जवाब में कौनसी जानकारी शामिल होनी चाहिए. नतीजों में दिखाए जाने वाले फ़ील्ड की कोई डिफ़ॉल्ट सूची नहीं होती. अगर आपने फ़ील्ड मास्क तय नहीं किया है, तो ये तरीके गड़बड़ी का मैसेज दिखाते हैं.
फ़ील्ड मास्क का इस्तेमाल करने से यह भी पक्का होता है कि आपने गैर-ज़रूरी डेटा का अनुरोध नहीं किया है. इससे जवाब मिलने में लगने वाले समय को कम करने में मदद मिलती है. साथ ही, आपके सिस्टम को ऐसी जानकारी नहीं मिलती जिसकी उसे ज़रूरत नहीं है.
आपको रिस्पॉन्स फ़ील्ड मास्क में उन फ़ील्ड की सूची देनी होगी जिनकी आपको ज़रूरत है. इसके बाद, यूआरएल पैरामीटर $fields या fields का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को किसी भी तरीके से पास करें. इसके अलावा, एचटीटीपी या gRPC हेडर X-Goog-FieldMask का इस्तेमाल करके भी ऐसा किया जा सकता है.
यूआरएल पैरामीटर के बारे में ज़्यादा जानकारी के लिए, सिस्टम पैरामीटर देखें.
जवाब के फ़ील्ड मास्क को तय करना
रिस्पॉन्स फ़ील्ड मास्क, कॉमा लगाकर अलग किए गए पाथ की सूची होती है. इसमें हर पाथ, रिस्पॉन्स मैसेज में एक यूनीक फ़ील्ड के बारे में बताता है. पाथ, टॉप-लेवल के रिस्पॉन्स मैसेज से शुरू होता है. साथ ही, तय किए गए फ़ील्ड के लिए डॉट से अलग किए गए पाथ का इस्तेमाल करता है.
फ़ील्ड पाथ बनाने और तय करने के लिए, यह तरीका अपनाएं:
- उन फ़ील्ड को ढूंढें जिनमें आपकी ज़रूरत की जानकारी मौजूद है. ज़्यादा जानकारी के लिए, फ़ील्ड के रेफ़रंस देखें.
- आपको जिन फ़ील्ड की ज़रूरत है उनके पाथ तय करें और उनके लिए फ़ील्ड मास्क बनाएं: ज़्यादा जानकारी के लिए, तय करें कि आपको किस फ़ील्ड मास्क का इस्तेमाल करना है लेख पढ़ें.
आपको जिन फ़ील्ड की ज़रूरत है उनके लिए फ़ील्ड मास्क को एक साथ जोड़ें. इसके लिए, फ़ील्ड मास्क को कॉमा लगाकर अलग करें. उदाहरण के लिए, अगर आपको रास्ते के लेग के लिए
distanceMetersऔर रास्ते के हर लेग के चरण की अवधि का अनुरोध करना है, तो दोनों को कॉमा से अलग करके बिना किसी स्पेस के डालें:routes.legs.distanceMeters,routes.legs.steps.duration
अपने एपीआई अनुरोध के साथ फ़ील्ड मास्क भेजें. उदाहरण के लिए, curl अनुरोध में, फ़ील्ड मास्क को
-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 } ]
अगर आपको सिर्फ़ रूट लेग के लिए distanceMetersdistanceMeters फ़ील्ड की वैल्यू चाहिए, तो फ़ील्ड मास्क इस तरह होगा:
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
computeRoutes को gRPC कॉल
रास्ते का हिसाब लगाने के लिए इस्तेमाल किए गए gRPC computeRoutes तरीके के लिए, एक ऐसा वैरिएबल सेट करें जिसमें रिस्पॉन्स फ़ील्ड मास्क मौजूद हो. इससे रिस्पॉन्स में रास्ते की distanceMeters, duration, और एन्कोड की गई पॉलीलाइन फ़ील्ड की जानकारी मिलेगी. इसके बाद, उस वैरिएबल को अनुरोध में पास किया जा सकता है:
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
computeRouteMatrix को gRPC कॉल
रूट मैट्रिक्स का हिसाब लगाने के लिए इस्तेमाल किए जाने वाले gRPC computeRouteMatrix तरीके के लिए, रिस्पॉन्स फ़ील्ड मास्क वाला वैरिएबल सेट करें. इससे, शुरुआत और मंज़िल की जगह के हर कॉम्बिनेशन के लिए, originIndex, destinationIndex, और duration की जानकारी मिलती है. इसके बाद, उस वैरिएबल को अनुरोध में पास किया जा सकता है:
const ( fieldMask = "originIndex,destinationIndex,duration" )
फ़ाइल पाथ के बारे में ज़रूरी बातें
जवाब में सिर्फ़ वे फ़ील्ड शामिल करें जिनकी आपको ज़रूरत है. इससे आपको सिर्फ़ वे फ़ील्ड मिलेंगे जिनकी आपको ज़रूरत है:
- प्रोसेसिंग में लगने वाले समय को कम करता है, ताकि आपको कम इंतज़ार करना पड़े.
- इससे इंतज़ार का समय कम होता है. अगर आपने सभी फ़ील्ड चुने हैं या टॉप लेवल पर सभी फ़ील्ड चुने हैं, तो नए फ़ील्ड जोड़ने और उन्हें आपके रिस्पॉन्स में अपने-आप शामिल करने पर, आपको परफ़ॉर्मेंस में गिरावट का अनुभव हो सकता है.
- इससे रिस्पॉन्स का साइज़ छोटा हो जाता है. इससे नेटवर्क थ्रूपुट बढ़ जाता है.
- यह पक्का करता है कि आपने ग़ैर-ज़रूरी डेटा का अनुरोध न किया हो. इससे, डेटा को प्रोसेस करने में लगने वाले समय और बिलिंग शुल्क को कम करने में मदद मिलती है.
फ़ील्ड मास्क बनाने के बारे में ज़्यादा जानकारी के लिए, field_mask.proto देखें.