סביבות, מגבלות וניהול גרסאות
כתובת בסיס אחת ל-Sandbox ולייצור; המפתח שבו אתם חותמים בוחר את הסביבה.
Sandbox וייצור, כתובת בסיס אחת
כתובת בסיס: https://api.dubaitrip.com/v1. ה-Sandbox והייצור חולקים אותה; המפתח שבו אתם חותמים בוחר את הסביבה. מפתח dt_sbx_ פועל מול סביבות הבדיקה של הספקים שלנו — חיפושים, תמחור, בדיקות תעריף, הזמנות טיסה, הזמנות מלון, הנפקת כרטיסים וביטולים פועלים מקצה לקצה על מלאי בדיקה, בלי כרטיס או שובר אמיתיים ובלי שום חיוב. מפתח dt_live_, שמונפק אחרי בדיקת הייצור, מגיע למלאי החי ומתחשבן מול הפיקדון שלכם.
הזמנות Sandbox והזמנות ייצור מוחזקות בנפרד בפורטל המפתחים (כל הזמנה מסומנת), וההיקפים, המגבלות וכללי ה-IP מנוהלים לכל סביבה בנפרד.
מגבלות קצב ומכסות
כל מפתח מוגבל על ידי token bucket (בקשות רציפות לשנייה ועוד פרץ) ומכסה יומית. ברירות המחדל ב-Sandbox: 2 בקשות/שנייה, פרץ 5, 2,000 בקשות/יום. מגבלות הייצור נקבעות בהסכמה לכל חשבון. חריגה מה-bucket מחזירה 429 api_rate_limited עם כותרת Retry-After; מיצוי המכסה מחזיר 429 api_quota_exceeded עד חצות UTC.
חיפושים כבדים הם אסינכרוניים מעצם תכנונם: העבירו wait=false כדי לקבל searchId מיד ולתשאל את נקודת הקצה של החיפוש, או wait=true כדי לקבל את התוצאה המלאה בקריאה אחת. תשאול נספר במגבלות שלכם כמו כל בקשה אחרת.
מגבלת חיפושים להזמנה
החיפושים מוקצבים גם ביחס להזמנות שאתם מבצעים. כל יום בחלון נע (7 ימים כברירת מחדל) מעניק מכסת חיפושים חינמית, וכל הזמנה שבוצעה בחלון הזה מוסיפה עוד cap חיפושים — cap הוא מספר החיפושים להזמנה שסוכם לחשבון שלכם ומוצג בפורטל המפתחים. תשאולים, תמחור, כללי מחיר וקריאות תוכן לעולם אינם נספרים; רק קריאות חיפוש טיסות ומלונות.
כשהמכסה נוצלה, חיפושים מחזירים 429 look_to_book_exceeded עם כותרת Retry-After שמצביעה על חצות UTC הקרובה, כשהיום הוותיק ביותר בחלון יוצא ממנו. הזמנה פותחת את המכסה מחדש מיד. הכרטיס „יחס חיפוש להזמנה” בפורטל המפתחים מציג את המונים החיים, את ה-cap ואת מה שנותר; אם האינטגרציה שלכם מחפשת באופן לגיטימי הרבה יותר ממה שהיא מזמינה, בקשו מאיתנו להעלות את ה-cap במקום לנסות שוב ולעקוף את הדחייה.
אידמפוטנטיות
נקודות קצה שמחייבות כסף או מלאי — יצירת הזמנת טיסה או מלון, הנפקה, ביטול — דורשות כותרת Idempotency-Key (כל מחרוזת ייחודית באורך של עד 128 תווים; UUID אידיאלי). ניסיון חוזר עם אותו מפתח מחזיר את התשובה המקורית במקום ליצור כפילות; גוף שונה תחת מפתח שכבר שומש מחזיר 409.
ניהול גרסאות
הגרסה מופיעה בנתיב (/v1). שינויים מוסיפים — שדות אופציונליים חדשים, ערכי enum חדשים, נקודות קצה חדשות — יוצאים בלי העלאת גרסה, ולכן נתחו תשובות בזהירות והתעלמו משדות לא מוכרים. שינויים שוברים מקבלים גרסה ראשית חדשה עם חלון מעבר; המדריך „יומן שינויים” מפרט כל שינוי.