לקוח Java Booking API

כדי להתחיל להטמיע את העדכונים בזמן אמת, אפשר להוריד את לקוח ה-API של Java לעדכון בזמן אמת.

דרישה מוקדמת:

יוצרים חשבון שירות, מורידים את המפתח הפרטי.

איך מתחילים:

  1. מורידים את ספריית הלקוח של Java ופורסים את הקובץ כדי לקבל את החבילה 'mapsbooking'.
  2. יוצרים פרויקט Java בסביבת הפיתוח המשולבת (IDE), ומורידים את הקודים לדוגמה InventoryUpdate.java ו-BookingNotification.java מהמאגר הזה:

    git clone https://maps-booking.googlesource.com/java-maps-booking-api-example
    

    ולייבא אותם לפרויקט Java שלכם בספרייה src.

  3. יוצרים עותק של המפתח הפרטי (קובץ JSON) לספריית src.
  4. מוסיפים את ספריית הלקוח של Java ליחסי התלות של הפרויקט (כולל קובצי jar ב-mapsbooking ובספרייה libs-sources).
  5. בשני קובצי Java, עוקבים אחר המשימות לביצוע כדי להשלים את ההטמעה

כאן אפשר לקרוא פרטים נוספים על ה-API ל-REST.

פתרון בעיות:

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

    409 Conflict
    {
      “code” : 409,
      “errors” :
        [{
            “domain” : “global”,
            “message” : “Requested entity already exists”,
            “reason” : “alreadyExists”,
            “debugInfo” : “detail: "[ORIGINAL ERROR] generic::already_exists: ...”\n"
        }],
      “message” : “Requested entity already exists”,
      “status” : “ALREADY_EXISTS”
    }
    
  2. כשמבצעים קריאה להחלפה של זמינות עם מזהה MerchantId או serviceId לא תקין, השיחה לא תוביל להצגת הודעת שגיאה. הסיבה לכך היא ששינויים במשבצות הזמינות דרך RTU תומכים בביצוע לא תקין, ולכן הם לא משויכים ל-MerchantId או ל-serviceId. עם זאת, יחידות הקיבולת (Slot) בבקשה לא יוצגו בסביבת הייצור בגלל שה-MerchantId או ה-serviceId לא תקינים. כדי שיהיה אפשר להציג את יחידות הקיבולת (Slot), צריך להוסיף את המוֹכר או השירות החסרים באמצעות RTU או פידים.
  3. בכל פונקציות העדכון, הפרמטר 'updateMask' חייב להיות בפורמט FieldMask כדי לציין את השדות שיש לעדכן. ה-API נדרש כדי לשנות רק את הערכים של השדות כפי שצוין במסכה ולהשאיר את השדות האחרים ללא שינוי. אם תעבירו את מחרוזת ה-updateMask הלא נכונה, העדכון לא ייכנס לתוקף. אם לא קיימת אנונימיזציה של שדות בעדכון, הפעולה תחול על כל השדות (כאילו צוינה אנונימיזציה של כל השדות). כך שאם תרצו לעדכן את כל השדות, הגדירו את updateMask ריק.
  4. כל שדה שהערך שלו הוא אפס לא יוצג בתגובה.