שלב 5: מטמיעים עדכוני API בזמן אמת

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

פידים ועדכונים בזמן אמת של API

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

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

ממשקי API נדרשים לעדכון בזמן אמת

ממשקי API לעדכון בזמן אמת (RTU)
BookingNotification חובה שולחים RTU של התראות להזמנה בכל שלב שינויים בהזמנה (למשל שינויים או ביטולים).
הזמינות מחליפה את ה-RTU חובה באופן מותנה[1] שליחה החלפת אצווה או החלפה יחידה (RTU) כדי לשלוח עדכונים לזמינות המלאי. עשויות לחלוף כמה דקות עד שהשינויים יעודכנו.
RTU של מוכר אופציונלי כדי לבצע שינויים בחשבון של המוכר, צריך לשלוח RTU של מוכרים מידע בזמן אמת. הפצת השינויים עשויה להימשך כמה שעות ומשקפות.
RTU של שירות אופציונלי עליך לשלוח RTU של שירות אם ברצונך לבצע שינויים בשירות מידע בזמן אמת. תרחיש לדוגמה נפוץ הוא אם מחירי השירות שונות באופן משמעותי במהלך היום, ולכן הטמעת RTU של שירות כדי למנוע כשלים בהזמנה בגלל חוסר התאמה במחיר. השינויים עשויים יכולות לחלוף כמה שעות עד להפצה ולהשתקפות.

RTU של API להחלפת זמינות

להשתמש ב-Availability substitute API כדי לספק עדכוני זמינות התרחישים הבאים:

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

יש לך אפשרות להיעזר במשאבים הבאים כדי לקבל מידע נוסף:

RTU של ממשק API להתראות על הזמנות

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

Request:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status

Body:
{"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"CANCELED"}

גישה ל-API

יצירה של חשבון שירות

היכנסו לכרטיסייה פרטי כניסה במסוף Google API כדי ליצור חשבון שירות. יש לאחסן את המפתח הפרטי בפורמט JSON בצורה בטוחה במקום. כשיוצרים את החשבון, אפשר להגדיר את התפקיד בתור 'Owner' (בעלים).

אימות ממשקי ה-API להזמנות במפות Google

אחרי שיוצרים חשבון שירות, צריך לאמת את ממשקי ה-API הבאים:

  • Google Maps Booking API
  • ממשק ה-API של מפות Google להזמנה (פיתוח)

למדריך מפורט איך לעשות זאת, אפשר לעיין המדריך לאימות באמצעות Maps Booking API.

שימוש בקריאות RESTful או הורדה של ספריית הלקוח

מומלץ לבצע קריאות RESTful ישירות אל Maps Booking API באמצעות מטענים ייעודיים (payloads) של JSON. מידע נוסף זמין במאמר מאמרי העזרה של API ל-REST.

אפשר גם להשתמש בספריות לקוח כדי להתחבר ל-API.

שפה קישור להורדה
Java ספריית לקוח של Java. מידע נוסף זמין במאמר הוראות ללקוח Java.

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

אחזור מסמך Discovery

עבור ספריות לקוח מסוימות, כמו Ruby, יש צורך לאחזר את מסמך Discovery של ה-API, שמתאר את השיטות שלו .

משתמשים בפקודה הבאה כדי לאחזר את מסמך Discovery:

curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'

מידע נוסף על גישה ל-API מ-Ruby זמין בקישורים הבאים: לקוח Ruby API וגם ספריית Ruby Auth.

ביצוע קריאות מורשות ל-API

כשמבצעים קריאות ל-API, חשוב לעיין בקישור הבא: בהכנה לביצוע קריאה ל-API מורשית כדי לאשר את השירות חשבון עם המפתח הפרטי והיקף OAuth הבא: https://www.googleapis.com/auth/mapsbooking.

מכסות ל-API

לעדכוני API יש מכסה של 1,500 בקשות כל 60 שניות, או 25 בקשות לשנייה בממוצע. כשיש חריגה ממכסה (מצב כזה יכול לקרות אם לא מוסיפים בפורטל השותפים את מספר הפרויקט הנכון ב-Google Cloud), Google משיבה את הודעת השגיאה הבאה:

{
  "error": {
    "code": 429,
    "message": "Insufficient tokens for quota ...",
    "status": "RESOURCE_EXHAUSTED",
    "details": [...]
  }
}

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

נקודות קצה (endpoints) של Sandbox וייצור

אפשר לבצע שיחות גם ל-Sandbox וגם לסביבות הייצור באמצעות ממשק ה-API. חשוב לוודא ששני ממשקי ה-API מופעלים בפרויקט שלכם ב-Google Cloud. שני ממשקי ה-API האלה משתמשים באותו היקף, אבל יש להם נקודות קצה שונות.

נקודת קצה לסביבת ייצור: https://mapsbooking.googleapis.com/

נקודת קצה (endpoint) של Sandbox: https://partnerdev-mapsbooking.googleapis.com/

הדוגמה הבאה ב-Java ממחישה איך להחליף נקודות קצה:

    // This block of code is for OAuth and is the same for prod and sandbox.
    GoogleCredential
      .fromStream(new FileInputStream(...))
      .createScoped(Collections.singleton("https://www.googleapis.com/auth/mapsbooking"))

    // This block of code sets the endpoint. This is what you'd change to connect to the sandbox.
    new GoogleMapsBookingAPI.Builder(...)
      .setApplicationName(...)
      .setRootUrl("https://partnerdev-mapsbooking.googleapis.com/") // you add this to change the endpoint to use partnerdev.
      .build()