במסמך הזה מתוארות הדרכים שבהן ניתן למצוא מידע על משימות בשרת או בדפדפן. ב-Fleet Engine יש תמיכה בשתי דרכים לחיפוש משימות:
חיפוש משימות: אפשר לחפש משימות לפי המזהים הבאים:
- מזהה משימה: משמש משתמשים כמו מפעילי כלל שיש להם גישה לכל של נתוני המשימה.
- מזהה לצורכי מעקב: משמש את תוכנת הלקוח שלכם כדי לספק מידע מוגבל למשתמש קצה, למשל כאשר חבילה צפויה להגיע בבית שלו.
חשוב להבין את ההבדל בין מזהה המשימה למשימה המזהה לצורכי מעקב. מדובר בשני דברים שונים. תוכלו להיעזר בקטע שדות בסיסיים של משימות מדריך למשימות מתוזמנות.
הצגת רשימת משימות: גישה רחבה למשימות, שמיועדת למשתמשים מהימנים בלבד.
חיפוש משימות
בקטע הזה נסביר איך לחפש משימות לפי מזהה משימה או מזהה לצורכי מעקב. יש בו הדרישות הבאות:
חיפושי מידע לפי מזהה לצורכי מעקב חייבים להתבצע בהתאם לכללי החשיפה מצוין בכללי החשיפה של אובייקטים במעקב.
השתמשו באסימון הצר ביותר שאפשר כדי להגביל את סיכוני האבטחה. לדוגמה, אם משתמשים באסימון צרכן למשלוחים, כאשר מקבלים כל שיחה בחזרה רק מידע שרלוונטי למשתמש הקצה, כמו השולח או מקבל משלוח. כל שאר המידע מצנזר מ-Fleet Engine תשובות מדויקות. מידע נוסף על אסימונים זמין במאמר אסימוני אינטרנט JSON.
חיפוש משימה לפי מזהה משימה
אפשר לחפש משימה לפי מזהה המשימה שלה בסביבת שרת באמצעות gRPC או REST. הדוגמאות הבאות מראות איך להשתמש בספריית Java gRPC או בקשת REST ל-GetTask.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8597549";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task request
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
GetTaskRequest getTaskRequest = GetTaskRequest.newBuilder() // No need for the header
.setName(taskName)
.build();
try {
Task task = deliveryService.getTask(getTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<taskId>
- <id> הוא מזהה ייחודי של המשימה.
- <taskId> הוא המזהה של המשימה לחיפוש.
- כותרת הבקשה חייבת להכיל שדה Authorization עם הערך הערוץ <token>, שבו ה-<token> מונפק על ידי השרת בהתאם להנחיות שמפורטות בתפקידים של חשבון שירות אסימוני אינטרנט JSON.
- גוף הבקשה חייב להיות ריק.
- אם החיפוש יסתיים בהצלחה, גוף התגובה יכלול ישות משימה.
פקודת curl
לדוגמה:
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}"
חיפוש משימות לפי מזהה לצורכי מעקב
בדוגמאות הבאות אפשר לראות איך לחפש משימות לפי המזהה לצורכי מעקב אחר משלוח.
באמצעות gRPC או בקריאת HTTP REST ל-GetTaskTrackingInfo
.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
GetTaskTrackingInfoRequest getTaskTrackingInfoRequest = GetTaskTrackingInfoRequest.newBuilder() // No need for the header
.setParent(parent)
.setTrackingId(TRACKING_ID)
.build();
try {
TaskTrackingInfo taskTrackingInfo = deliveryService.getTaskTrackingInfo(getTaskTrackingInfoRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/taskTrackingInfo/<tracking_id>
<tracking_id> הוא המזהה לצורכי מעקב שמשויך למשימה.
כותרת הבקשה חייבת להכיל שדה Authorization עם הערך הספק <token>, שבו <token> נושא את השירות הנכון בחשבון. למידע נוסף, ראו תפקידי חשבון שירות.
אם החיפוש יסתיים בהצלחה, גוף התגובה יכלול taskTrackingInfo.
פקודת curl
לדוגמה:
# Set JWT, PROJECT_ID, and TRACKING_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/taskTrackingInfo/${TRACKING_ID}"
הצגת רשימת המשימות
הצגת רשימה של משימות מבקשת גישה רחבה למשימות. הצגת רשימת המשימות מיועדת רק משתמשים מהימנים. שימוש באסימוני אימות של Reader Fleet או של 'אדמין מסירה' כששולחים בקשות למשימות ליצירת רשימות. למידע נוסף, ראו תפקידי חשבון שירות מידע.
עימוד רשימות
רשימות של משימות מחולקות לדפים. אפשר לציין גודל דף בבקשות למשימות של רשימה. אם מצוין גודל הדף, מספר המשימות שהוחזרו לא יהיה גדול יותר מגודל הדף שצוין. אם לא מוגדר גודל דף, ברירת מחדל סבירה נעשה שימוש. אם גודל הדף המבוקש חורג מערך מקסימלי פנימי, ואז המערכת תשתמש במקסימום הפנימי.
רשימת משימות יכולה לכלול אסימון לקריאת דף התוצאות הבא. שפת תרגום לאחזר את הדף הבא, להנפיק מחדש את אותה בקשה יחד עם אסימון הדף. כשאסימון הדף המוחזר ריק, לא זמינות יותר משימות עבור באחזור.
השדות שבהם אפשר לראות את רשימת המשימות
כשמציגים את המשימות ברשימה, השדות הבאים מצונזרים ב-Fleet Engine:
VehicleStop.planned_location
VehicleStop.state
VehicleStop.TaskInfo.taskId
משתמשים בפורמטים הבאים של השדות, שמבוססים על הצעות לשיפור של Google API:
סוג שדה | פורמט | דוגמה |
---|---|---|
חותמת זמן | RFC-3339 | task_outcome_time = 2022-03-01T11:30:00-08:00 |
משך | מספר השניות ואחריהן s |
task_duration = 120s |
Enum | מחרוזת | state = CLOSED AND type = PICKUP |
מיקום | point.latitude וגם point.longitude |
planned_location.point.latitude > 36.1 AND planned_location.point.longitude < -122.0 |
סינון המשימות שברשימה
אתם יכולים לסנן את המשימות שברשימה לפי רוב מאפייני המשימות. בתחביר של שאילתות סינון: ראו AIP-160. אם לא צוינה שאילתת סינון, כל המשימות יופיעו ברשימה.
בטבלה הבאה מוצגים מאפייני משימות תקינים שבהם אפשר להשתמש לצורך סינון:
מאפייני משימה לסינון רשימות | |
---|---|
|
|
רשימה מלאה של אופרטורים של שאילתות סינון מופיעה ב-AIP-160.
הצגת רשימה של דוגמאות למשימות
הדוגמה הבאה ממחישה איך ליצור רשימה של משימות עבור deliveryVehicleId
מאפיין משימה, גם עם ספריית Java gRPC וגם עם קריאה ל-HTTP REST ל-
ListTasks
תגובה מוצלחת עדיין יכולה להיות ריקה. תגובה ריקה מציינת 'לא'
משימות שקשורות ל-deliveryVehicleId
שסופקו.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
ListTasksRequest listTasksRequest = ListTasksRequest.newBuilder() // No need for the header
.setParent(parent)
.setFilter("delivery_vehicle_id = 123 AND attributes.foo = true")
.build();
try {
ListTasksResponse listTasksResponse = deliveryService.listTasks(listTasksRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks
כדי להחיל מסנן על המשימות שברשימה, צריך לכלול 'מסנן' פרמטר של כתובת אתר עם ערך של שאילתת סינון שמסומנת בתו בריחה (escape) של כתובת URL.
כותרת הבקשה חייבת להכיל שדה Authorization עם הערך הספק <token>, שבו <token> נושא את השירות הנכון בחשבון. למידע נוסף, ראו תפקידי חשבון שירות.
חיפוש מוצלח מספק גוף תשובה עם המבנה הבא:
// JSON representation
{
"tasks": [
{
object (Task)
}
],
"nextPageToken": string,
"totalSize": integer
}
פקודת curl
לדוגמה:
# Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?filter=state%20%3D%20OPEN%20AND%20delivery_vehicle_id%20%3D%20${VEHICLE_ID}"