कोई एंडपॉइंट चुनें

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"
      }
    }
  ]
}