נקודות מפתח לתכנון חוזי נתונים ב-JSON API
שישה דברים קשים מאוד לשינוי אחרי שחרור: מעטפות תשובה, פורמטי שגיאה, צורת עימוד, ייצוג מזהים וזמן, הסמנטיקה של null מול היעדר, ואבולוציית גרסאות.
הכנסת JSON למערכות אמיתיות: איך להגדיר חוזי API, איך לנהל תצורה ו-fixtures, איך לטפל בתאימות גרסאות, ואיך לתחזק נתוני בדיקה.
5 מאמריםשישה דברים קשים מאוד לשינוי אחרי שחרור: מעטפות תשובה, פורמטי שגיאה, צורת עימוד, ייצוג מזהים וזמן, הסמנטיקה של null מול היעדר, ואבולוציית גרסאות.
תצורה חייבת להיות בשכבות ומאומתת; fixtures חייבים להיות דטרמיניסטיים, קריאים וניתנים ל-diff. אם שני סוגי הקבצים האלה מנוהלים גרוע, עלות פתרון התקלות נשארת גבוהה זמן רב.
חמישים רשומות הופכות לחמישים ואחת וה-diff מדווח על חמישים ואחת שינויים. הסבר על false positives של text diff, התאמת מערכים לפי id, נרמול עם jq ופאצ'ים ישימים.
merge=union מכניס JSON שבור ועדיין מדווח על הצלחה. הסבר על driver מיזוג תלת-כיווני מודע למפתחות עבור JSON, ועוד שלושה הרגלים שמצמצמים התנגשויות.
הוספת שדה אינה בטוחה אוטומטית. הסבר על גבולות תאימות, שדות גרסה, חלונות deprecation, העברה בכתיבה כפולה, בדיקות חוזה ומדדי canary.