روش‌های API بهینه‌سازی منفرد غیر مسدود

این راهنما، راه‌اندازی آزمایشی متدهای API مربوط به OptimizeToursLongRunning و OptimizeToursUri را معرفی می‌کند که به کاربران امکان می‌دهد درخواست‌های بهینه‌سازی تکی غیر مسدودکننده (non-blocking optimization) را انجام دهند. در یک بهینه‌سازی غیر مسدودکننده، کاربر به سرعت یک نمونه اولیه Operation را از متد دریافت می‌کند که می‌تواند با فراخوانی GetOperation برای ارجاع به وضعیت بهینه‌سازی استفاده شود. برای جزئیات بیشتر به Long Running Operations مراجعه کنید.

این روش‌های غیر مسدودکننده، مزایای قابلیت اطمینان بیشتری نسبت به روش مسدودکننده OptimizeTours ارائه می‌دهند، زیرا کلاینت نیازی به حفظ اتصال به سرور در حین اجرای بهینه‌سازی ندارد. همچنین، این روش‌های جدید، اشکال‌زدایی از خطاها را در مقایسه با BatchOptimizeTours آسان‌تر می‌کنند، زیرا هر بهینه‌سازی با یک عملیات طولانی‌مدت (LRO) مرتبط است.

کاربرانی که ترجیح می‌دهند درخواست بهینه‌سازی را به صورت درون‌خطی (inline) وارد کنند، می‌توانند از متد 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