طرق Optimization API الفردية غير المحظورة

يقدّم هذا الدليل إطلاقًا تجريبيًا لطريقتَي واجهة برمجة التطبيقات OptimizeToursLongRunning و OptimizeToursUri اللتين تسمحان للمستخدمين بتقديم طلبات تحسين فردية غير حظر. في عملية التحسين غير الحظر، يتلقّى المستخدم بسرعة كائن Operation proto من الطريقة التي يمكن استخدامها للإشارة إلى حالة التحسين من خلال طلب GetOperation. لمزيد من التفاصيل، يُرجى الاطّلاع على العمليات الطويلة الأمد.

توفر هاتان الطريقتان غير الحظر مزايا الموثوقية مقارنةً بطريقة OptimizeTours الحظر، لأنّه ليس على العميل الحفاظ على الاتصال بالخادم أثناء تنفيذ عملية التحسين. بالإضافة إلى ذلك، تسهّل هاتان الطريقتان الجديدتان تصحيح الأخطاء مقارنةً بـ BatchOptimizeTours لأنّ كل عملية تحسين مرتبطة بعملية طويلة الأمد (LRO) واحدة.

يمكن للمستخدمين الذين يفضّلون تضمين طلب التحسين استخدام طريقة OptimizeToursLongRunning، بينما يمكن للمستخدمين الذين يفضّلون تحميل الطلبات وقراءة الردّ باستخدام Google Cloud Storage استخدام طريقة OptimizeToursUri.

OptimizeToursLongRunning

مثال: تقديم طلب OptimizeToursLongRunning

قبل تقديم طلب، استبدِل المعلّمات التالية بقيم مناسبة لبيئتك:

  • تأكَّد من ضبط بيانات الاعتماد التلقائية للتطبيق كما هو موضّح في مقالة استخدام OAuth.
  • اضبط PROJECT_NUMBER_OR_ID على رقم تعريف مشروعك على السحابة الإلكترونية أو رقم تعريفه.

    يرسل الأمر التالي طلب 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

قبل تقديم طلب، استبدِل المعلّمات التالية بقيم مناسبة لبيئتك:

  • تأكَّد من ضبط بيانات الاعتماد التلقائية للتطبيق كما هو موضّح في مقالة استخدام OAuth.
  • اضبط PROJECT_NUMBER_OR_ID على رقم تعريف مشروعك على السحابة الإلكترونية أو رقم تعريفه.

    يرسل الأمر التالي طلب 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