JSON Schema: מהיסודות לפרודקשן
יש הרבה מילות מפתח, אבל רק תריסר משמשות ביום-יום. תשיגו נכון את type/properties/required/$ref, תטפלו היטב בהודעות שגיאה, וכיסיתם שמונים אחוז מהמקרים האמיתיים.
תארו את צורת הנתונים שלכם עם JSON Schema, הפכו הסכמות מילוליות לאימות שניתן להריץ, ותנו לו להוביל את טיפוסי TypeScript ואת יצירת הטפסים.
7 מאמריםיש הרבה מילות מפתח, אבל רק תריסר משמשות ביום-יום. תשיגו נכון את type/properties/required/$ref, תטפלו היטב בהודעות שגיאה, וכיסיתם שמונים אחוז מהמקרים האמיתיים.
טיפוסים ו-schemas מכסים כל אחד מקטע אחר: אחד בזמן קומפילציה, אחד בזמן ריצה. השאלה אינה מה לבחור, אלא איך לשמור את השניים מסונכרנים אוטומטית.
schemas שנוצרים חוסמים לעיתים קרובות נתונים תקינים. למדו למה דוגמאות עשירות יותר מפיקות schemas גרועים יותר, ואז את התהליך: דגימה מרובת רשומות, השלמה סמנטית ואיתור שגיאות.
$ref פותר שימוש חוזר, allOf ו-oneOf פותרים הרכבה, וערימה של שניהם היא המקום שבו דברים נשברים. המאמר מכסה $id, $defs, תנאים, רקורסיה, ארזוף ודיבוג.
המאמת מפיק שגיאות מכונה; המשתמשים רוצים לדעת איזו תיבת קלט שגויה. המאמר מכסה את מערך errors של Ajv, instancePath מול schemaPath, קיבוץ וניסוח.
עמידה באימות לא אומרת שהנתונים נקיים. Pydantic מתעלם משדות לא מוכרים כברירת מחדל, Zod מסיר אותם, Ajv מרשה להם לעבור — פרמטרים מומצאים ומפתחות עם שגיאת הקלדה עוברים בשקט. המאמר מציג שלוש צורות של קבלה שקטה ונותן מתכונים מלאים: לסגור אובייקטים, לשלוט בהמרת טיפוסים ולהדק כל רמת קינון.
הסכמה לא מסתיימת כשכותבים אותה — שם מתחילה הידרדרות. שגיאת הקלדה אחת מרפה את האימות בשקט, רפקטורינג אחד שובר את כל הפיקסטורות. המדריך הזה מפרק מערכת בדיקות חוזה שאפשר להריץ: פיקסטורות חיוביות, שליליות וסנאפשוט, lint לסכמה עצמה, הידור פעם אחת עם שימוש חוזר, וארבעה שערי CI שהופכים שינויים שוברי-חוזה לבילדים אדומים.