Route Optimization API के ये एंडपॉइंट हैं:
OptimizeTours: यह एक ऐसा एंडपॉइंट है जो एक बार में सिर्फ़ एक अनुरोध को ब्लॉक करता है.OptimizeToursLongRunning: यह एक नॉन-ब्लॉकिंग एंडपॉइंट है. इसका इस्तेमाल, ऐसे सिंगल अनुरोधों के लिए किया जाता है जिन्हें पूरा होने में ज़्यादा समय लगता है.OptimizeToursUri: यह एक ऐसा एंडपॉइंट है जो ज़्यादा डेटा वाले अनुरोधों को ब्लॉक नहीं करता.BatchOptimizeTours: यह एक नॉन-ब्लॉकिंग एंडपॉइंट है. इसका इस्तेमाल एक साथ प्रोसेस किए जाने वाले कई अनुरोधों के लिए किया जाता है.
आपको कौनसा एंडपॉइंट चुनना चाहिए, यह आपके इस्तेमाल के उदाहरण, अनुरोध के साइज़, समस्या हल होने में लगने वाले अनुमानित समय, और इस बात पर निर्भर करता है कि आपको एक साथ कई अनुरोधों को प्रोसेस करना है या नहीं.
एंडपॉइंट की तुलना करना
अपनी ज़रूरत के हिसाब से सही एंडपॉइंट की पहचान करने के लिए, यहां दी गई टेबल का इस्तेमाल करें:
| एंडपॉइंट | OptimizeTours |
OptimizeToursLongRunning |
OptimizeToursUri |
BatchOptimizeTours |
|---|---|---|---|---|
| एक्ज़ीक्यूशन का टाइप | ब्लॉकिंग | नॉन-ब्लॉकिंग | नॉन-ब्लॉकिंग | नॉन-ब्लॉकिंग |
| प्रोसेस किए गए अनुरोध | अविवाहित | अविवाहित | अविवाहित | कई शामिल हैं |
| अनुरोध का ज़्यादा से ज़्यादा साइज़ | छोटा | मध्यम | बड़ा | बड़ा |
| समस्या हल करने में लगा समय | छोटा | लंबा | लंबा | लंबा |
| Google Cloud Storage की ज़रूरत होती है | नहीं | नहीं | हां | हां |
एंडपॉइंट की विशेषताओं के बारे में जानकारी
ऊपर दी गई टेबल में, सही एंडपॉइंट चुनने में आपकी मदद करने के लिए, ये विशेषताएं दी गई हैं:
- एग्ज़ीक्यूशन टाइप: इससे यह तय होता है कि जवाब का इंतज़ार करते समय, आपका ऐप्लिकेशन इंटरनेट कनेक्शन को कैसे मैनेज करता है. ये दो तरह के होते हैं:
- ब्लॉकिंग एंडपॉइंट: एपीआई से जवाब मिलने तक कनेक्शन खुला रखें.
- नॉन-ब्लॉकिंग एंडपॉइंट: ये बैकग्राउंड में अनुरोधों को प्रोसेस करते हैं. एपीआई, तुरंत ज़्यादा समय तक चलने वाली कार्रवाई (एलआरओ) का आईडी दिखाता है. बाद में, नतीजे पाने के लिए इस आईडी को पोल किया जाता है.
- प्रोसेस किए गए अनुरोध: इससे यह तय होता है कि एंडपॉइंट, एक राउटिंग अनुरोध को हैंडल करता है या एक साथ कई अनुरोधों को प्रोसेस करता है.
- अनुरोध का ज़्यादा से ज़्यादा साइज़: छोटे और मीडियम साइज़ के अनुरोध, सीधे इनलाइन भेजे जाते हैं. साथ ही, सर्वर-साइड पर इनकी सीमाएं होती हैं. ज़्यादा डेटा वाले अनुरोधों के लिए, Google Cloud Storage का इस्तेमाल किया जाता है. इसलिए, इन अनुरोधों पर ये सीमाएं लागू नहीं होती हैं. एंडपॉइंट की जानकारी वाले सेक्शन में, अनुरोध के साइज़ की सटीक सीमाएं देखें.
- समस्या हल होने में लगने वाला समय: सामान्य अनुरोधों को कम समय में हल किया जा सकता है. वहीं, जटिल अनुरोधों को हल करने में ज़्यादा समय लगता है. कनेक्शन को कितने समय तक खुला रखना है, यह समस्या हल होने में लगने वाले समय से तय होता है. इसलिए, एंडपॉइंट का चुनाव, टाइमआउट की सीमाओं पर निर्भर करता है. ज़्यादा जानकारी के लिए, टाइम आउट और समयसीमाएं कॉन्फ़िगर करना लेख पढ़ें.
- Google Cloud Storage की ज़रूरत होती है: बड़े अनुरोधों और जवाबों को प्रोसेस करने वाले एंडपॉइंट, Google Cloud Storage से सीधे तौर पर डेटा पढ़ते और लिखते हैं. एचटीटीपी अनुरोध में डेटा भेजने के बजाय, अपने अनुरोध को Cloud Storage बकेट में अपलोड करें और यूआरआई को एपीआई में पास करें.
एंडपॉइंट की जानकारी
Route Optimization API में चार एंडपॉइंट होते हैं. यहां दिए गए सेक्शन में, हर एंडपॉइंट के काम करने का तरीका बताया गया है. साथ ही, अनुरोध का एक उदाहरण भी दिया गया है.
OptimizeTours
OptimizeTours एक ब्लॉकिंग एंडपॉइंट है. इसका इस्तेमाल, ऐसे अनुरोधों के लिए किया जाता है जिन्हें कम समय में हल किया जा सकता है. यह जवाब में सीधे तौर पर सबसे बेहतर रास्ता दिखाता है.
यह एक ब्लॉकिंग एंडपॉइंट है. इसलिए, आपको अपना नेटवर्क कनेक्शन खुला रखना होगा. ऐसा तब तक करें, जब तक एपीआई अनुरोध को प्रोसेस न कर ले, ताकि वह जवाब दे सके. यह एंडपॉइंट, करीब 4 एमबी तक के इनलाइन अनुरोध स्वीकार करता है.
OptimizeTours अनुरोध का उदाहरण देखें
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.424215, "longitude": -122.095260 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursLongRunning
OptimizeToursLongRunning एक नॉन-ब्लॉकिंग एंडपॉइंट है. इसका इस्तेमाल, उन अनुरोधों के लिए किया जाता है जिन्हें प्रोसेस होने में ज़्यादा समय लगता है. यह ज़्यादा समय तक चलने वाली कार्रवाई (एलआरओ) का आईडी दिखाता है.
अनुरोध की स्थिति देखने और ऑप्टिमाइज़ किए गए फ़ाइनल रूट पाने के लिए, GetOperation एंडपॉइंट का इस्तेमाल करके इस आईडी को पोल किया जा सकता है. यह एंडपॉइंट, ज़्यादा से ज़्यादा 8 एमबी के इनलाइन अनुरोध स्वीकार करता है.
OptimizeToursLongRunning अनुरोध का उदाहरण देखें
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursUri
OptimizeToursUri एक नॉन-ब्लॉकिंग एंडपॉइंट है. इसका इस्तेमाल ऐसे सिंगल अनुरोधों के लिए किया जाता है जिन्हें पूरा होने में ज़्यादा समय लगता है और जिनके लिए ज़्यादा डेटा (8 एमबी से ज़्यादा) की ज़रूरत होती है. यह ज़्यादा समय तक चलने वाली कार्रवाई (एलआरओ) का आईडी दिखाता है. अनुरोध की स्थिति देखने के लिए, GetOperation एंडपॉइंट का इस्तेमाल करके इस आईडी को पोल किया जा सकता है.
अपने पेलोड को इनलाइन भेजने के बजाय, OptimizeToursRequest को Google Cloud Storage पर अपलोड करें. इसके बाद, आपको इनपुट अनुरोध और आउटपुट डेस्टिनेशन, दोनों के लिए Cloud Storage यूआरआई को एपीआई में पास करना होगा. सर्वर, आपके इनपुट यूआरआई से डेटा पढ़ता है और फ़ाइनल OptimizeToursResponse को सीधे आपके आउटपुट यूआरआई में लिखता है. कार्रवाई पूरी होने के बाद, इस आउटपुट यूआरआई से ऑप्टिमाइज़ किए गए रूट पढ़े जा सकते हैं.
OptimizeToursUri अनुरोध का उदाहरण देखें
{ "input": { "uri": "gs://your-bucket/path/input/object.json" }, "output": { "uri": "gs://your-bucket/path/output/object.json" } }
BatchOptimizeTours
BatchOptimizeTours एक नॉन-ब्लॉकिंग एंडपॉइंट है. इसका मकसद, ऑप्टिमाइज़ेशन के लिए किए गए एक से ज़्यादा अनुरोधों को एक साथ प्रोसेस करना है. ये अनुरोध एक-दूसरे से अलग होते हैं. यह ज़्यादा समय तक चलने वाली कार्रवाई (एलआरओ) का आईडी दिखाता है. अनुरोध की स्थिति देखने और ऑप्टिमाइज़ किए गए फ़ाइनल रूट पाने के लिए, GetOperation एंडपॉइंट का इस्तेमाल करके इस आईडी को पोल किया जा सकता है.
पेलोड को इनलाइन भेजने के बजाय, Google Cloud Storage पर कई OptimizeToursRequest अपलोड किए जाते हैं. इसके बाद, Cloud Storage यूआरआई को एपीआई पर पास करें. सर्वर, आपके इनपुट यूआरआई से डेटा को पढ़ता है और हर अनुरोध के लिए, सीधे आपके आउटपुट यूआरआई में OptimizeToursResponse लिखता है.
BatchOptimizeTours अनुरोध का उदाहरण देखें
{ "modelConfigs": [ { "inputConfig": { "gcsSource": { "uri": "gs://your-bucket/path/input/request_1.json" }, "dataFormat": "JSON" }, "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket/path/output/response_1.json" }, "dataFormat": "JSON" } }, { "inputConfig": { "gcsSource": { "uri": "gs://your-bucket/path/input/request_2.json" }, "dataFormat": "JSON" }, "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket/path/output/response_2.json" }, "dataFormat": "JSON" } } ] }