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