Route Optimization API دارای نقاط پایانی زیر است:
OptimizeTours: نقطه پایانی مسدودکننده برای درخواستهای تکی.OptimizeToursLongRunning: نقطه پایانی غیرمسدودکننده برای درخواستهای تکی با زمان حل طولانی.OptimizeToursUri: نقطه پایانی غیرمسدودکننده برای درخواستهای تکی با الزامات داده بزرگ.BatchOptimizeTours: نقطه پایانی غیرمسدودکننده برای پردازش همزمان چند درخواست.
نقطه پایانیای که انتخاب میکنید به مورد استفاده، اندازه درخواست، زمان حل موردانتظار، و اینکه آیا نیاز به پردازش همزمان چند درخواست دارید یا نه بستگی دارد.
مقایسه نقطههای پایانی
از جدول زیر برای شناسایی نقطه پایانی مناسب برای نیازهایتان استفاده کنید:
| نقطه پایانی | OptimizeTours |
OptimizeToursLongRunning |
OptimizeToursUri |
BatchOptimizeTours |
|---|---|---|---|---|
| نوع اجرا | مسدود کردن | غیرمسدودکننده | غیرمسدودکننده | غیرمسدودکننده |
| درخواستهای پردازششده | تکی | تکی | تکی | چندگانه |
| حداکثر اندازه درخواست | کوچک | متوسط | بزرگ | بزرگ |
| زمان حل | کوتاه | طولانی | طولانی | طولانی |
| به Google Cloud Storage نیاز دارد | نه | نه | بله | بله |
آشنایی با مشخصههای نقطه پایان
جدول قبلی ویژگیهای زیر را فهرست میکند تا به شما کمک کند نقطه پایانی مناسب را انتخاب کنید:
- نوع اجرا: تعیین میکند که برنامه شما چگونه
اتصال شبکه را هنگام انتظار برای پاسخ مدیریت کند. دو نوع
وجود دارد:
- مسدود کردن نقاط پایانی: اتصال را تا زمانی که API پاسخی برمیگرداند باز نگه دارید.
- نقاط پایانی غیرمسدودکننده: درخواستها را در پسزمینه پردازش کنید. میانای برنامهسازی کاربردی فوراً شناسه عملیات طولانیمدت (LRO) را برمیگرداند که بعداً برای بازیابی نتایج آن را نظرسنجی میکنید.
- درخواستهای پردازششده: تعیین میکند که آیا نقطه پایانی یک درخواست مسیریابی را مدیریت میکند یا چندین درخواست را بهطور همزمان پردازش میکند.
- حداکثر اندازه درخواست: درخواستهای کوچک و متوسط مستقیماً بهصورت درونخطی ارسال میشوند و محدودیتهای سمت سرور دارند. درخواستهای بزرگ بااستفاده از Google Cloud Storage این محدودیتها را دور میزنند. حدود دقیق اندازه درخواست را در بخشهای جزئیات نقاط پایانی پیدا کنید.
- زمان حل: درخواستهای ساده در مدت کوتاهی حل میشوند، درحالیکه درخواستهای پیچیده به زمان بیشتری برای حل نیاز دارند. ازآنجاییکه زمان حل تعیین میکند که اتصال چه مدت باید باز بماند، انتخاب نقطه پایانی شما به محدودیتهای زماناتمام شما بستگی دارد. برای اطلاعات بیشتر، پیکربندی زمانهای اتمام و مهلتها را ببینید.
- به Google Cloud Storage نیاز دارد: نقاط پایانی که درخواستها و پاسخهای بزرگ را پردازش میکنند، دادهها را مستقیماً در Google Cloud Storage میخوانند و مینویسند. بهجای ارسال دادهها در درخواست HTTP، درخواستتان را در یک سطل Cloud Storage بارگذاری میکنید و URI را به API ارسال میکنید.
جزئیات نقطه پایانی
Route Optimization API چهار نقطه پایانی دارد. بخشهای زیر توضیح میدهند که هر نقطه پایانی چگونه کار میکند و شامل یک درخواست نمونه است.
OptimizeTours
OptimizeTours یک نقطه پایانی مسدودکننده است که برای درخواستهای تکی
با زمان حل کوتاه درنظر گرفته شده است. این ابزار مسیر بهینهشده را مستقیماً در پاسخ برمیگرداند.
چون این نقطه پایانی مسدودکننده است، باید اتصال شبکهتان را باز نگه دارید
تا API پردازش درخواست را تمام کند و پاسخ را برگرداند. این
نقطه پایانی درخواستهای درونخطی را تا حدود ۴ مگابایت میپذیرد.
مشاهده نمونه درخواست OptimizeTours
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.424215, "longitude": -122.095260 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursLongRunning
OptimizeToursLongRunning یک نقطه پایانی غیرمسدودکننده برای درخواستهای تکی با زمان حل طولانی است. این روش یک شناسه «عملیات طولانیمدت» (LRO) برمیگرداند.
میتوانید این شناسه را بااستفاده از نقطه پایانی GetOperation نظرسنجی کنید تا وضعیت درخواست را بررسی کنید و مسیرهای بهینهشده نهایی را بازیابی کنید. این نقطه پایانی درخواستهای درونخطی
تا حدود ۸ مگابایت را میپذیرد.
مشاهده نمونه درخواست OptimizeToursLongRunning
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursUri
OptimizeToursUri یک نقطه پایانی غیرمسدودکننده است که برای درخواستهای تکی با زمان حل طولانی و نیازهای دادهای بزرگ (بیش از ۸ مگابایت) طراحی شده است. این روش
یک شناسه «عملیات طولانیمدت» (LRO) برمیگرداند. میتوانید این شناسه را بااستفاده از نقطه پایانی
GetOperation نظرسنجی کنید تا وضعیت درخواست را بررسی کنید.
بهجای ارسال بار داده بهصورت درونخطی، OptimizeToursRequest خود را در Google Cloud Storage بارگذاری میکنید. سپس URIهای Cloud Storage را برای هر دو
درخواست ورودی و مقصد خروجی به API ارسال میکنید. سرور دادهها را از URI ورودی شما میخواند و OptimizeToursResponse نهایی را مستقیماً در URI خروجی شما مینویسد. پساز تکمیل عملیات، میتوانید مسیرهای بهینهشده را از این شناسه منبع یکسان خروجی بخوانید.
مشاهده نمونه درخواست OptimizeToursUri
{ "input": { "uri": "gs://your-bucket/path/input/object.json" }, "output": { "uri": "gs://your-bucket/path/output/object.json" } }
BatchOptimizeTours
BatchOptimizeTours یک نقطه پایانی غیرمسدودکننده است که برای
چندین درخواست بهینهسازی مستقل که بهطور همزمان پردازش میشوند درنظر گرفته شده است. این روش
یک شناسه «عملیات طولانیمدت» (LRO) برمیگرداند. میتوانید این شناسه را بااستفاده از نقطه پایانی GetOperation نظرسنجی کنید تا وضعیت درخواست را بررسی کنید و مسیرهای بهینهشده نهایی را بازیابی کنید.
بهجای ارسال بار داده بهصورت درونخطی، چندین
OptimizeToursRequest را در Google Cloud Storage بارگذاری میکنید. سپس شناسه منبع یکسان Cloud Storage را به میانای برنامهسازی کاربردی ارسال میکنید. سرور دادهها را از URIهای ورودی شما میخواند و
OptimizeToursResponse را برای هر درخواست مستقیماً در URIهای خروجی شما مینویسد.
مشاهده درخواست نمونه BatchOptimizeTours
{ "modelConfigs": [ { "inputConfig": { "gcsSource": { "uri": "gs://your-bucket/path/input/request_1.json" }, "dataFormat": "JSON" }, "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket/path/output/response_1.json" }, "dataFormat": "JSON" } }, { "inputConfig": { "gcsSource": { "uri": "gs://your-bucket/path/input/request_2.json" }, "dataFormat": "JSON" }, "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket/path/output/response_2.json" }, "dataFormat": "JSON" } } ] }