שיטות API בודדות ללא חסימה לאופטימיזציה

במדריך הזה נסביר על ההשקה הניסיונית של שיטות ה-API OptimizeToursLongRunning ו-OptimizeToursUri, שמאפשרות למשתמשים לשלוח בקשות אופטימיזציה יחידות ללא חסימה. באופטימיזציה לא חוסמת, המשתמש מקבל במהירות Operation proto מהשיטה, שאפשר להשתמש בו כדי להפנות לסטטוס האופטימיזציה באמצעות קריאה ל-GetOperation. פרטים נוספים זמינים במאמר פעולות ממושכות.

השיטות הלא חוסמות האלה מספקות את יתרונות האמינות על פני השיטה החוסמת OptimizeTours, כי הלקוח לא צריך לשמור על חיבור לשרת בזמן ביצוע האופטימיזציה. בנוסף, השיטות החדשות האלה מאפשרות לנפות באגים בקלות רבה יותר בהשוואה ל-BatchOptimizeTours, כי כל אופטימיזציה משויכת לפעולה ארוכת טווח (LRO) אחת.

משתמשים שמעדיפים להוסיף את בקשת האופטימיזציה לקוד יכולים להשתמש בשיטה OptimizeToursLongRunning, ואילו משתמשים שמעדיפים להעלות את הבקשות ואת התשובה לקריאה באמצעות Google Cloud Storage יכולים להשתמש בשיטה OptimizeToursUri.

OptimizeToursLongRunning

דוגמה: שליחת בקשה מסוג OptimizeToursLongRunning

לפני שליחת הבקשה, מחליפים את הפרמטרים הבאים בערכים שמתאימים לסביבה שלכם:

  • מוודאים שהגדרתם את Application Default Credentials כפי שמתואר במאמר שימוש ב-OAuth.
  • מגדירים את PROJECT_NUMBER_OR_ID למספר או למזהה של הפרויקט ב-Cloud.

    הפקודה הבאה שולחת בקשה מסוג OptimizeToursLongRunning ל-Route Optimization API ומקבלת מזהה פעולה שמשויך אליה. אפשר להשתמש בשיטה 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. צריך לציין את מזהי ה-URI של Cloud Storage בהודעת הבקשה OptimizeToursUri. סטטוס ה-Operation שמוחזר משויך רק ל-OptimizeToursRequest היחיד שנשלח.

דוגמה: שליחת בקשה מסוג OptimizeToursUri

לפני שליחת הבקשה, מחליפים את הפרמטרים הבאים בערכים שמתאימים לסביבה שלכם:

  • מוודאים שהגדרתם את Application Default Credentials כפי שמתואר במאמר שימוש ב-OAuth.
  • מגדירים את PROJECT_NUMBER_OR_ID למספר או למזהה של הפרויקט ב-Cloud.

    הפקודה הבאה שולחת בקשה מסוג OptimizeToursUri ל-Route Optimization API ומקבלת מזהה פעולה שמשויך אליה. כדי לבדוק את סטטוס הפעולה, אפשר להשתמש בשיטה GetOperation. בסיום הפעולה, הערך של OptimizeToursResponse נשמר מרחוק בנתיב ה-URI של הפלט שצוין בבקשה.

    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