लौटाने के लिए फ़ील्ड चुनें

ComputeRoutes() तरीके को कॉल करते समय, आपको यह बताना होगा कि आपको रिस्पॉन्स में कौनसे फ़ील्ड चाहिए. इसके लिए, रिस्पॉन्स फ़ील्ड मास्क का इस्तेमाल करें. इसे यूआरएल पैरामीटर $fields या fields के साथ दिया जाता है. इसके अलावा, HTTP/gRPC हेडर X-Goog-FieldMask का इस्तेमाल करके भी ऐसा किया जा सकता है. ज़्यादा जानकारी के लिए, सिस्टम पैरामीटर देखें.

फ़ील्ड मास्क

फ़ील्ड मास्क की वैल्यू, फ़ील्ड पाथ की कॉमा लगाकर अलग की गई सूची होती है. हर फ़ील्ड पाथ, फ़ील्ड के नामों की एक ऐसी सूची होती है जिसमें हर नाम के बाद एक बिंदु होता है. यह सूची, मैसेज के क्रम को दिखाती है. फ़ील्ड का नाम, JSON ऑब्जेक्ट की कुंजी या प्रोटोबफ़ फ़ील्ड टैग का नाम होता है. फ़ील्ड पाथ, टॉप लेवल के रिस्पॉन्स मैसेज टाइप से शुरू होता है. इसके बाद, एक या उससे ज़्यादा बिंदु और फिर फ़ील्ड के नाम का अगला लेवल होता है. हालांकि, यह ज़रूरी नहीं है. आम तौर पर, फ़ील्ड पाथ इस तरह बनाए जाते हैं:

topLevelField[.secondLevelField][.thirdLevelField][...]

खास मामले में फ़ील्ड मास्क, वाइल्डकार्ड “*” होता है. यह सभी रूट-लेवल फ़ील्ड चुनता है.

उदाहरण

यहां दिए गए उदाहरण में, ComputeRoutes() तरीके के लिए फ़ील्ड मास्क सेट करने का तरीका बताया गया है.

उदाहरण 1

मैन्युअल जांच के लिए, सभी उपलब्ध फ़ील्ड का फ़ील्ड मास्क.

X-Goog-FieldMask: *

उदाहरण 2

रास्ते के लेवल की अवधि, दूरी, और पॉलीलाइन का फ़ील्ड मास्क (प्रोडक्शन सेटअप का उदाहरण).

X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline

हम प्रोडक्शन में वाइल्डकार्ड (*) रिस्पॉन्स फ़ील्ड मास्क का इस्तेमाल करने या टॉप लेवल (रास्ते) पर फ़ील्ड मास्क तय करने का सुझाव नहीं देते. सिर्फ़ ज़रूरी फ़ील्ड चुनना:

  • इससे हमारे सर्वर को प्रोसेसिंग साइकल सेव करने की अनुमति मिलती है. इससे हम आपको कम इंतज़ार के समय में नतीजे दिखा पाते हैं.

  • इससे लेटेंसी की परफ़ॉर्मेंस स्थिर रहती है. हम आने वाले समय में, जवाब के ज़्यादा फ़ील्ड जोड़ सकते हैं. इन नए फ़ील्ड के लिए, कैलकुलेशन में ज़्यादा समय लग सकता है. सभी फ़ील्ड चुनने पर या टॉप लेवल पर सभी फ़ील्ड चुनने पर, आपको परफ़ॉर्मेंस में गिरावट दिख सकती है. ऐसा इसलिए, क्योंकि हम जो भी नया फ़ील्ड जोड़ेंगे वह आपके जवाब में अपने-आप शामिल हो जाएगा.

  • इससे जवाब का साइज़ छोटा हो जाता है. इसका मतलब है कि नेटवर्क थ्रूपुट बढ़ जाता है.

फ़ील्ड पाथ बनाने के तरीके के बारे में ज़्यादा जानने के लिए, field_mask.proto देखें.