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

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

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

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

OptimizeToursLongRunning

उदाहरण: OptimizeToursLongRunning के लिए अनुरोध करना

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

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

    इस कमांड से, रूट ऑप्टिमाइज़ेशन एपीआई को OptimizeToursLongRunning का अनुरोध भेजा जाता है. साथ ही, इससे जुड़ा ऑपरेशन आईडी मिलता है. The 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 की तरह, Google Cloud Storage पर ऑप्टिमाइज़ेशन के अनुरोध और जवाब को सेव करने के लिए, OptimizeToursUri का इस्तेमाल किया जा सकता है. OptimizeToursUri के अनुरोध वाले मैसेज में, Cloud Storage के यूआरआई के बारे में बताना ज़रूरी है. लौटाया गया Operation का स्टेटस, सबमिट किए गए सिर्फ़ एक OptimizeToursRequest से जुड़ा होता है.

उदाहरण: OptimizeToursUri के लिए अनुरोध करना

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

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

    इस कमांड से, रूट ऑप्टिमाइज़ेशन एपीआई को 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