एक बार में कई विकल्पों को ऑप्टिमाइज़ करने वाले एपीआई के तरीके

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

ब्लॉक न करने वाले ये तरीके, ब्लॉक करने वाले OptimizeTours तरीके के मुकाबले भरोसेमंद होते हैं. ऐसा इसलिए, क्योंकि ऑप्टिमाइज़ेशन की प्रोसेस के दौरान क्लाइंट को सर्वर से कनेक्ट रहने की ज़रूरत नहीं होती. साथ ही, इन नए तरीकों से BatchOptimizeTours की तुलना में, गड़बड़ियों को डीबग करना आसान हो जाता है. ऐसा इसलिए है, क्योंकि हर ऑप्टिमाइज़ेशन, एक लंबे समय तक चलने वाले ऑपरेशन (एलआरओ) से जुड़ा होता है.

ऑप्टिमाइज़ेशन अनुरोध को इनलाइन करने वाले उपयोगकर्ता, OptimizeToursLongRunning तरीके का इस्तेमाल कर सकते हैं. वहीं, Google Cloud Storage का इस्तेमाल करके अनुरोध और पढ़े गए जवाब को अपलोड करने वाले उपयोगकर्ता, OptimizeToursUri तरीके का इस्तेमाल कर सकते हैं.

OptimizeToursLongRunning

उदाहरण: OptimizeToursLongRunning अनुरोध करना

अनुरोध करने से पहले, इन पैरामीटर को अपने एनवायरमेंट के हिसाब से वैल्यू से बदलें:

  • पक्का करें कि आपने ऐप्लिकेशन के लिए डिफ़ॉल्ट क्रेडेंशियल को OAuth का इस्तेमाल करें में बताए गए तरीके के मुताबिक कॉन्फ़िगर किया हो.
  • PROJECT_NUMBER_OR_ID को अपने Cloud प्रोजेक्ट नंबर या आईडी पर सेट करें.

    यह कमांड, Route Optimization API को OptimizeToursLongRunning अनुरोध भेजता है और इससे जुड़ा ऑपरेशन आईडी पाता है. ऑपरेशन के स्टेटस के बारे में क्वेरी करने के लिए, GetOperation तरीके का इस्तेमाल किया जा सकता है. प्रोसेस पूरी होने के बाद, मेटाडेटा में आखिरी OptimizeToursResponse भी शामिल हो जाता है.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursLongRunning' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
            "costPerKilometer": 1.0
          }
        ],
      }
    }
    EOM
    किसी फ़ाइल को पढ़ें.

OptimizeToursUri

BatchOptimizeTours की तरह, OptimizeToursUri का इस्तेमाल करके भी, Google Cloud Storage में ऑप्टिमाइज़ेशन अनुरोध और उसके जवाब को सेव किया जा सकता है. OptimizeToursUri अनुरोध मैसेज में, Cloud Storage यूआरआई की जानकारी देना ज़रूरी है. Operation स्टेटस सिर्फ़ सबमिट किए गए एक OptimizeToursRequest से जुड़ा होता है.

उदाहरण: OptimizeToursUri अनुरोध करना

अनुरोध करने से पहले, इन पैरामीटर को अपने एनवायरमेंट के हिसाब से वैल्यू से बदलें:

  • पक्का करें कि आपने ऐप्लिकेशन के लिए डिफ़ॉल्ट क्रेडेंशियल को OAuth का इस्तेमाल करें में बताए गए तरीके के मुताबिक कॉन्फ़िगर किया हो.
  • PROJECT_NUMBER_OR_ID को अपने Cloud प्रोजेक्ट नंबर या आईडी पर सेट करें.

    यह कमांड, Route Optimization API को OptimizeToursUri अनुरोध भेजता है और इससे जुड़ा ऑपरेशन आईडी पाता है. ऑपरेशन की स्थिति के बारे में क्वेरी करने के लिए, GetOperation वाले तरीके का इस्तेमाल करें. ऑपरेशन पूरा होने के बाद, OptimizeToursResponse को अनुरोध में दिए गए आउटपुट यूआरआई पाथ पर रिमोट तौर पर सेव किया जाता है.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursUri' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "input": {
        "uri": "gs://bucket/path/input/object.json"
      },
      "output": {
        "uri": "gs://bucket/path/output/object.json"
      }
    }
    EOM
    किसी फ़ाइल को पढ़ें.