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