עדכון שדות הרכב

המסמך הזה עוסק בשדות חשובים של כלי רכב שאפשר בזמן היצירה והניהול של כלי הרכב.

  • vehicle_state: קובע את הזמינות של הרכב לנסיעות חדשות.
  • vehicle_type: שדה חובה כשיוצרים רכב. השדה יכול גם לשמש כקריטריון לסינון התאמות למכירת רכב. צפייה יצירת רכב לפרטים על הגדרת השדה הזה.
  • attributes[]: מערך אופציונלי מסוג VehicleAttribute. אפשר להשתמש בהם כדי להגדיר קריטריונים מותאמים אישית לשיפור התנהגות הסינון כשמחפשים רכבים או כשמציגים אותם באתר.
 

לרשימה מלאה של שדות הרכב:

שדה מצב הרכב

המערכת יכולה להגדיר את מצב הרכב כOFFLINE או כONLINE. לדוגמה, ייתכן שמצב הרכב יהיה ONLINE בכל יום בשעה 9:00 ו-OFFLINE בכל יום בשעה 17:00.

מצב אופליין מצב ONLINE
צריך להשתמש בOFFLINE כדי לציין שרכב מסוים לא מקבל תמיכה נסיעות חדשות. חשוב לשים לב שהרכב עדיין יכול להשלים נסיעות שהוקצו בזמן במצב הזה.
  • Vehicle שנוצר במצב ONLINE עשוי להוחזר באופן מיידי בתגובה לשאילתות SearchVehicles. פרטים נוספים זמינים במאמר חיפוש רכבים.
  • בכלי רכב שנוצרו במדינה ONLINE צריך להשתמש בlast_location בשדה בקריאה CreateVehicle.

שדה מאפייני הרכב

יש להשתמש בשדה attributes של הרכב כדי ליצור קריטריונים מותאמים אישית להפעלת לצרכנים או למפעילי צי רכבים כדי למצוא כלי רכב בצי שלך מגוון קריטריונים לחיפוש. הפעולה הזו משפרת את היכולות של האפליקציות לספק התאמות טובות יותר למכירת רכב בהשוואה למה שהייתם מקבלים אם אתם משתמשים בקריטריונים של חיפוש על סמך שדות אחרים בכלי רכב בלבד. בכל רכב אפשר להזין עד 100 ולכל אחד מהם צריך להיות מפתח ייחודי. הערכים יכולים להיות מחרוזות, ערכים בוליאניים או מספרים.

לדוגמה, אפשר להצהיר על מאפיין מותאם אישית שנקרא class כדי ליצור הבחנה בין כלי רכב שיתופיים בין הרמות השונות. צריך להשתמש ברכיב ערכי המחרוזת הבאים כדי לייצג רמות של סיווג רכב: ECONOMY, STANDARD ו-LUXURY.

עם זאת, ערכי המאפיינים המותאמים אישית לא חייבים להיות ייחודיים. ייתכן ש להשתמש בקריטריונים כמו ידידותי לחיות מחמד, ללא עישון ויכולת להימשך זמן רב יותר. נסיעות. כל אחד מהם יכול להיות מאפיין מותאם אישית נפרד שמשתמש בערכים בוליאניים. אפשר להקצות לרכב נתון את כל שלושת המאפיינים המותאמים אישית האלה, יחד עם המאפיין המותאם אישית class שמוגדר לערך המחרוזת המתאים.

שימוש במאפיינים בדרך הזו יכול לספק מגוון רחב של תכונות שימושיות למציאת רכבים לנסיעות עם צרכים ספציפיים. לקבלת הוראות כדי להשתמש במאפיינים מותאמים אישית בתור מסנני שאילתות, ראו חיפוש רכבים.

עדכון מאפייני הרכב

אפשר לעדכן את מאפייני הרכב באמצעות UpdateVehicle או UpdateVehicleAttributes. לכל מפתח attributes יכול להיות רק ערך אחד לכל רכב. כדי להצהיר על מאפייני רכב מותאמים אישית, משתמשים ב-attributes במסכת השדה, ולאחר מכן מספקים ערכים על סמך השיטה שמפורטת בהמשך.

UpdateVehicle UpdateVehicleAttributes
ה-API הזה לא מאפשר לעדכן רק מאפיין אחד. כשמשתמשים בשיטה הזו, כל שימוש בשדה attributes במסכת השדות גורם להצהרה מחדש על הקבוצה המלאה של מאפייני הרכב. כתוצאה מכך, כל מאפיין קיים שלא נכלל במפורש במסכת השדה יימחק. אם אתם משתמשים בשיטה הזו כדי להצהיר על מאפיין מותאם אישית חדש, צריך גם להצהיר מחדש על כל מאפיין מותאם אישית שרוצים שהרכב הפחתה. אם לא כוללים את attributes במסכת השדות, השיטה הזו משאירה מאפיינים מותאמים אישית קיימים כפי שהוגדר קודם לכן לרכב. אם משתמשים ב-attributes במסכת השדה, אבל בלי להגדיר ערכים, זה שווה ערך להסרת כל המאפיינים המותאמים אישית מהרכב. השיטה הזו מקבלת רשימת מאפיינים ספציפית לעדכון. הבקשה מתעדכנת או מוסיפה רק את המאפיינים שצוינו במסכת השדות. מאפיינים קיימים שלא צוינו לא ישתנו.

דוגמה לעדכון שדות של כלי רכב

בקטע הזה מוסבר איך לעדכן את שדות הרכב באמצעות UpdateVehicleRequest, שכולל update_mask, שמציין אילו שדות צריך לעדכן. לפרטים נוספים, אפשר לעיין במסמכי התיעוד של Protocol Buffers בנושא מסכות שדות.

לעדכונים בשדות שאינם last_location נדרש Fleet Engine על פי דרישה (Fleet Engine) הרשאות אדמין.

דוגמה: הפעלה של סוג נסיעה חדש ומאפיין מותאם אישית

בדוגמה הזו מפעילים את האפשרות back_to_back לנסיעות ברכב, ומציינים גם מאפיין חדש: class. כמו שצוין קודם במאמר עדכון מאפייני רכב, כדי לעדכן את השדה attributes בגישה הזו, צריך לציין את כל של המאפיינים המותאמים אישית שרוצים לשמור. לכן בדוגמה מוצג ערך cash_only שנכתב כדי למנוע מחיקה שלו במהלך פעולת עדכון שמציינת את השדה attributes.

כדי לעדכן רק את הערך של צמד מאפיין אחד של מפתח/ערך, משתמשים בפונקציה אמצעי תשלום UpdateVehicleAttributes ולא כוללים את השדה attribute במסכת השדות של הבקשה UpdateVehicle.

למידע נוסף, אפשר לעיין במסמכי העזרה של providers.vehicles.update לגבי gRPC ו-REST.

gRPC

static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";

VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);

String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
    .setVehicleState(VehicleState.ONLINE)
    .addAllAttributes(ImmutableList.of(
        VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
        VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
    .setBackToBackEnabled(true)
    .build();

UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
    .setName(vehicleName)
    .setVehicle(updatedVehicle)
    .setUpdateMask(FieldMask.newBuilder()
        .addPaths("vehicle_state")
        .addPaths("attributes")
        .addPaths("back_to_back_enabled"))
    .build();

try {
  Vehicle updatedVehicle =
      vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case NOT_FOUND:
      // Most implementations will call CreateVehicle in this case
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}
// If no Exception, Vehicle updated successfully.

REST

curl -X PUT \
  "https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  --data-binary @- << EOM
{
    "vehicleState": "ONLINE",
    "attributes": [
      {"key": "class", "value": "LUXURY"},
      {"key": "cash_only", "value": "false"}
    ],
    "backToBackEnabled": true
}
EOM

המאמרים הבאים