ל-Route Optimization API יש את נקודות הקצה הבאות:
-
OptimizeTours: נקודת קצה חוסמת לבקשות בודדות. -
OptimizeToursLongRunning: נקודת קצה (endpoint) שלא חוסמת בקשות בודדות עם זמני פתרון ארוכים. -
OptimizeToursUri: נקודת קצה (endpoint) לא חוסמת לבקשות בודדות עם דרישות נתונים גדולות. -
BatchOptimizeTours: נקודת קצה שלא חוסמת בקשות, ומאפשרת לעבד כמה בקשות בו-זמנית.
נקודת הקצה שתבחרו תלויה בתרחיש לדוגמה, בגודל הבקשה, בזמן הצפוי לפתרון ובשאלה אם אתם צריכים לעבד כמה בקשות בו-זמנית.
השוואה בין נקודות קצה (endpoints)
בטבלה הבאה מפורטות נקודות הקצה השונות, כדי שתוכלו לבחור את נקודת הקצה שמתאימה לצרכים שלכם:
| נקודת קצה (endpoint) | OptimizeTours |
OptimizeToursLongRunning |
OptimizeToursUri |
BatchOptimizeTours |
|---|---|---|---|---|
| סוג הביצוע | חסימה | משאב לא חוסם | משאב לא חוסם | משאב לא חוסם |
| בקשות שעובדו | אחד | אחד | אחד | מרובים |
| גודל בקשה מקסימלי | קטן | בינונית | גדול | גדול |
| זמן פתרון | קצר | ארוך | ארוך | ארוך |
| נדרש Google Cloud Storage | לא | לא | כן | כן |
הסבר על המאפיינים של נקודת הקצה
בטבלה הקודמת מפורטים המאפיינים הבאים שיעזרו לכם לבחור את נקודת הקצה המתאימה:
- סוג הביצוע: קובע איך האפליקציה מטפלת בחיבור לרשת בזמן ההמתנה לתגובה. יש שני סוגים:
- נקודות קצה חוסמות: החיבור נשאר פתוח עד שה-API מחזיר תשובה.
- נקודות קצה (endpoint) לא חוסמות: עיבוד בקשות ברקע. ה-API מחזיר מיד מזהה של פעולה ממושכת (LRO), שאותו דוגמים בהמשך כדי לאחזר את התוצאות.
- בקשות שעובדו: קובע אם נקודת הקצה מטפלת בבקשת ניתוב אחת או מעבדת כמה בקשות בו-זמנית.
- גודל בקשה מקסימלי: בקשות קטנות ובינוניות נשלחות ישירות בתוך השורה, ויש להן מגבלות בצד השרת. בקשות גדולות עוקפות את המגבלות האלה באמצעות Google Cloud Storage. בקטעי הפרטים של נקודות הקצה (endpoints) מפורטות המגבלות המדויקות על גודל הבקשות.
- זמן הטיפול: בקשות פשוטות אפשר לפתור תוך זמן קצר, אבל בקשות מורכבות דורשות יותר זמן. זמן הפתרון קובע כמה זמן החיבור צריך להישאר פתוח, ולכן בחירת נקודת הקצה תלויה במגבלות הזמן הקצוב לתפוגה. מידע נוסף זמין במאמר הגדרת זמן קצוב לתפוגה ומועדים אחרונים.
- נדרש Google Cloud Storage: נקודות קצה (endpoint) שמעבדות בקשות ותגובות גדולות קוראות וכותבות נתונים ישירות ל-Google Cloud Storage. במקום לשלוח את הנתונים בבקשת ה-HTTP, אתם מעלים את הבקשה לקטגוריה של Cloud Storage ומעבירים את ה-URI ל-API.
הפרטים של נקודת הקצה
ל-Route Optimization API יש ארבע נקודות קצה (endpoints). בקטעים הבאים מוסבר איך כל נקודת קצה עובדת, ומוצגת דוגמה לבקשה.
OptimizeTours
OptimizeTours היא נקודת קצה חוסמת שמיועדת לבקשות בודדות עם זמני פתרון קצרים. הוא מחזיר מסלול אופטימלי ישירות בתגובה.
מכיוון שזו נקודת קצה חוסמת, אתם צריכים להשאיר את החיבור לרשת פתוח עד שה-API יסיים לעבד את הבקשה ויחזיר תשובה. נקודת הקצה הזו מקבלת בקשות מוטבעות בגודל של עד כ-4MB.
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 היא נקודת קצה (endpoint) לא חוסמת לבקשות בודדות עם זמני פתרון ארוכים. היא מחזירה מזהה של פעולה ממושכת (LRO).
אפשר לבדוק את המזהה הזה באמצעות נקודת הקצה (endpoint) GetOperation כדי לבדוק את סטטוס הבקשה ולאחזר את המסלולים הסופיים שעברו אופטימיזציה. נקודת הקצה הזו מקבלת בקשות מוטמעות בגודל של עד 8MB בערך.
OptimizeToursLongRunning דוגמה לבקשה
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursUri
OptimizeToursUri היא נקודת קצה (endpoint) לא חוסמת שמיועדת לבקשות בודדות עם זמני פתרון ארוכים ודרישות נתונים גדולות (מעל 8MB). היא מחזירה מזהה של פעולה ממושכת (LRO). אפשר לבדוק את המזהה הזה באמצעות נקודת הקצה (endpoint) GetOperation כדי לבדוק את סטטוס הבקשה.
במקום לשלוח את המטען הייעודי (payload) בתוך השורה, אתם מעלים את ה-OptimizeToursRequest ל-Google Cloud Storage. לאחר מכן, מעבירים ל-API את ה-URIs של Cloud Storage גם לבקשת הקלט וגם ליעד הפלט. השרת קורא את הנתונים מה-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 היא נקודת קצה (endpoint) לא חוסמת שמיועדת לכמה בקשות אופטימיזציה בלתי תלויות שמעובדות בו-זמנית. היא מחזירה מזהה של פעולה ממושכת (LRO). אתם יכולים לבדוק את המזהה הזה באמצעות נקודת הקצה (endpoint) GetOperation כדי לבדוק את סטטוס הבקשה ולאחזר את המסלולים הסופיים שעברו אופטימיזציה.
במקום לשלוח את המטען הייעודי (payload) בתוך השורה, אתם מעלים כמה קובצי OptimizeToursRequest ל-Google Cloud Storage. לאחר מכן, מעבירים את ה-URIs של 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" } } ] }