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

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

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

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

OptimizeToursLongRunning

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

قبل تقديم طلب، استبدِل المَعلمات التالية بقيم مناسبة لبيئة موقعك الإلكتروني:

  • تأكَّد من ضبط بيانات الاعتماد التلقائية للتطبيق على النحو الموضّح في مقالة استخدام بروتوكول 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

قبل تقديم طلب، استبدِل المَعلمات التالية بقيم مناسبة لبيئة موقعك الإلكتروني:

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

    يُرسِل الأمر التالي طلبًا من النوع OptimizeToursUri إلى واجهة برمجة التطبيقات Route Optimization API ويتلقّى رقم تعريف عملية مرتبطًا به. استخدِم طريقة GetOperation لطلب البحث عن حالة العملية. بعد اكتمال العملية، يتم تخزين OptimizeToursResponse عن بُعد في مسار عنوان URL الناتج المقدَّم في الطلب.

    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