API بهینهسازی مسیر دارای نقاط پایانی زیر است:
-
OptimizeTours: یک نقطه پایانی مسدودکننده برای درخواستهای تکی. -
OptimizeToursLongRunning: یک نقطه پایانی غیر مسدودکننده برای درخواستهای تکی با زمان حل طولانی. -
OptimizeToursUri: یک نقطه پایانی غیر مسدودکننده برای درخواستهای تکی با نیازهای دادهای بزرگ. -
BatchOptimizeTours: یک نقطه پایانی غیر مسدودکننده برای چندین درخواست که به طور همزمان پردازش میشوند.
نقطه پایانی که انتخاب میکنید به مورد استفاده شما، اندازه درخواست، زمان حل مورد انتظار و اینکه آیا نیاز به پردازش همزمان چندین درخواست دارید یا خیر، بستگی دارد.
مقایسه نقاط پایانی
برای شناسایی نقطه پایانی مناسب برای نیازهای خود از جدول زیر استفاده کنید:
| نقطه پایانی | OptimizeTours | OptimizeToursLongRunning | OptimizeToursUri | BatchOptimizeTours |
|---|---|---|---|---|
| نوع اجرا | مسدود کردن | غیر مسدود کننده | غیر مسدود کننده | غیر مسدود کننده |
| درخواستهای پردازششده | مجرد | مجرد | مجرد | چندگانه |
| حداکثر اندازه درخواست | کوچک | متوسط | بزرگ | بزرگ |
| زمان حل | کوتاه | طولانی | طولانی | طولانی |
| نیاز به فضای ذخیرهسازی ابری گوگل | خیر | خیر | بله | بله |
ویژگیهای نقطه پایانی را درک کنید
جدول قبلی ویژگیهای زیر را برای کمک به شما در انتخاب نقطه پایانی مناسب فهرست میکند:
- نوع اجرا : نحوه مدیریت اتصال شبکه توسط برنامه شما در حین انتظار برای پاسخ را تعیین میکند. دو نوع وجود دارد:
- مسدود کردن نقاط پایانی : اتصال را تا زمانی که API پاسخی ارسال کند، باز نگه دارید.
- نقاط پایانی غیر مسدودکننده : درخواستها را در پسزمینه پردازش میکنند. API بلافاصله یک شناسه عملیات طولانیمدت (LRO) را برمیگرداند که بعداً برای بازیابی نتایج از آن استفاده میکنید.
- درخواستهای پردازششده : تعیین میکند که آیا نقطه پایانی یک درخواست مسیریابی واحد را مدیریت میکند یا چندین درخواست را بهطور همزمان پردازش میکند.
- حداکثر اندازه درخواست : درخواستهای کوچک و متوسط مستقیماً به صورت درونخطی ارسال میشوند و محدودیتهایی از سمت سرور دارند. درخواستهای بزرگ با استفاده از فضای ذخیرهسازی ابری گوگل (Google Cloud Storage) از این محدودیتها عبور میکنند. محدودیتهای دقیق اندازه درخواست را در بخشهای جزئیات نقاط پایانی (endpoints details) بیابید.
- زمان حل : درخواستهای ساده میتوانند در مدت زمان کوتاهی حل شوند، در حالی که درخواستهای پیچیده برای حل شدن به زمان بیشتری نیاز دارند. از آنجا که زمان حل، مدت زمانی را که یک اتصال باید باز بماند، تعیین میکند، انتخاب نقطه پایانی شما به محدودیتهای زمانی شما بستگی دارد. برای اطلاعات بیشتر، به پیکربندی زمانهای زمانی و مهلتها مراجعه کنید.
- نیاز به فضای ابری گوگل : نقاط پایانی که درخواستها و پاسخهای بزرگ را پردازش میکنند، دادهها را مستقیماً در فضای ابری گوگل میخوانند و مینویسند. به جای ارسال دادهها در درخواست HTTP، درخواست خود را در یک مخزن فضای ابری آپلود میکنید و URI را به API ارسال میکنید.
جزئیات نقطه پایانی
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 یک نقطه پایانی غیر مسدودکننده است که برای درخواستهای تکی با زمان حل طولانی و نیازهای دادهای بزرگ (بیش از 8 مگابایت) در نظر گرفته شده است. این نقطه پایانی یک شناسه عملیات طولانی مدت (LRO) را برمیگرداند. میتوانید با استفاده از نقطه پایانی GetOperation این شناسه را برای بررسی وضعیت درخواست، نمونهبرداری کنید.
به جای ارسال بار داده به صورت درونخطی، شما OptimizeToursRequest خود را در Google Cloud Storage آپلود میکنید. سپس URI های Cloud Storage را برای درخواست ورودی و مقصد خروجی خود به API ارسال میکنید. سرور دادهها را از URI ورودی شما میخواند و OptimizeToursResponse نهایی را مستقیماً در URI خروجی شما مینویسد. پس از اتمام عملیات، میتوانید مسیرهای بهینه شده را از این 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 آپلود میکنید. سپس URI های Cloud Storage را به API ارسال میکنید. سرور دادهها را از 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" } } ] }
API بهینهسازی مسیر دارای نقاط پایانی زیر است:
-
OptimizeTours: یک نقطه پایانی مسدودکننده برای درخواستهای تکی. -
OptimizeToursLongRunning: یک نقطه پایانی غیر مسدودکننده برای درخواستهای تکی با زمان حل طولانی. -
OptimizeToursUri: یک نقطه پایانی غیر مسدودکننده برای درخواستهای تکی با نیازهای دادهای بزرگ. -
BatchOptimizeTours: یک نقطه پایانی غیر مسدودکننده برای چندین درخواست که به طور همزمان پردازش میشوند.
نقطه پایانی که انتخاب میکنید به مورد استفاده شما، اندازه درخواست، زمان حل مورد انتظار و اینکه آیا نیاز به پردازش همزمان چندین درخواست دارید یا خیر، بستگی دارد.
مقایسه نقاط پایانی
برای شناسایی نقطه پایانی مناسب برای نیازهای خود از جدول زیر استفاده کنید:
| نقطه پایانی | OptimizeTours | OptimizeToursLongRunning | OptimizeToursUri | BatchOptimizeTours |
|---|---|---|---|---|
| نوع اجرا | مسدود کردن | غیر مسدود کننده | غیر مسدود کننده | غیر مسدود کننده |
| درخواستهای پردازششده | مجرد | مجرد | مجرد | چندگانه |
| حداکثر اندازه درخواست | کوچک | متوسط | بزرگ | بزرگ |
| زمان حل | کوتاه | طولانی | طولانی | طولانی |
| نیاز به فضای ذخیرهسازی ابری گوگل | خیر | خیر | بله | بله |
ویژگیهای نقطه پایانی را درک کنید
جدول قبلی ویژگیهای زیر را برای کمک به شما در انتخاب نقطه پایانی مناسب فهرست میکند:
- نوع اجرا : نحوه مدیریت اتصال شبکه توسط برنامه شما در حین انتظار برای پاسخ را تعیین میکند. دو نوع وجود دارد:
- مسدود کردن نقاط پایانی : اتصال را تا زمانی که API پاسخی ارسال کند، باز نگه دارید.
- نقاط پایانی غیر مسدودکننده : درخواستها را در پسزمینه پردازش میکنند. API بلافاصله یک شناسه عملیات طولانیمدت (LRO) را برمیگرداند که بعداً برای بازیابی نتایج از آن استفاده میکنید.
- درخواستهای پردازششده : تعیین میکند که آیا نقطه پایانی یک درخواست مسیریابی واحد را مدیریت میکند یا چندین درخواست را بهطور همزمان پردازش میکند.
- حداکثر اندازه درخواست : درخواستهای کوچک و متوسط مستقیماً به صورت درونخطی ارسال میشوند و محدودیتهایی از سمت سرور دارند. درخواستهای بزرگ با استفاده از فضای ذخیرهسازی ابری گوگل (Google Cloud Storage) از این محدودیتها عبور میکنند. محدودیتهای دقیق اندازه درخواست را در بخشهای جزئیات نقاط پایانی (endpoints details) بیابید.
- زمان حل : درخواستهای ساده میتوانند در مدت زمان کوتاهی حل شوند، در حالی که درخواستهای پیچیده برای حل شدن به زمان بیشتری نیاز دارند. از آنجا که زمان حل، مدت زمانی را که یک اتصال باید باز بماند، تعیین میکند، انتخاب نقطه پایانی شما به محدودیتهای زمانی شما بستگی دارد. برای اطلاعات بیشتر، به پیکربندی زمانهای زمانی و مهلتها مراجعه کنید.
- نیاز به فضای ابری گوگل : نقاط پایانی که درخواستها و پاسخهای بزرگ را پردازش میکنند، دادهها را مستقیماً در فضای ابری گوگل میخوانند و مینویسند. به جای ارسال دادهها در درخواست HTTP، درخواست خود را در یک مخزن فضای ابری آپلود میکنید و URI را به API ارسال میکنید.
جزئیات نقطه پایانی
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 یک نقطه پایانی غیر مسدودکننده است که برای درخواستهای تکی با زمان حل طولانی و نیازهای دادهای بزرگ (بیش از 8 مگابایت) در نظر گرفته شده است. این نقطه پایانی یک شناسه عملیات طولانی مدت (LRO) را برمیگرداند. میتوانید با استفاده از نقطه پایانی GetOperation این شناسه را برای بررسی وضعیت درخواست، نمونهبرداری کنید.
به جای ارسال بار داده به صورت درونخطی، شما OptimizeToursRequest خود را در Google Cloud Storage آپلود میکنید. سپس URI های Cloud Storage را برای درخواست ورودی و مقصد خروجی خود به API ارسال میکنید. سرور دادهها را از URI ورودی شما میخواند و OptimizeToursResponse نهایی را مستقیماً در URI خروجی شما مینویسد. پس از اتمام عملیات، میتوانید مسیرهای بهینه شده را از این 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 آپلود میکنید. سپس URI های Cloud Storage را به API ارسال میکنید. سرور دادهها را از 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" } } ] }