מניעת פעולות API כפולות בחיבור מערכות
מאת איתי דילן זריהן זיונץ· הבעלים של POCAST
בקשה שנשלחת שוב אחרי תקלה עלולה ליצור שתי הזמנות או שתי פעולות.
תשובה מעשית
בקשה שנשלחת שוב אחרי תקלה עלולה ליצור שתי הזמנות או שתי פעולות. בחיבור מערכות מגדירים מזהה פעולה ומדיניות חזרה לפני הפיתוח. התמיכה של ספק במפתחות Idempotency חייבת להיבדק בתיעוד שלו ובמסלול המסוים.
תהליך עבודה והחלטות
זהו פעולות שכותבות מידע והפרידו אותן מקריאה. קבעו איך מזהים ניסיון חוזר לאותה פעולה, ומה עושים כשהתוצאה לא ידועה. בדקו מצב שבו הספק ביצע את הפעולה אך התשובה לא הגיעה, ולא רק שגיאה לפני ביצוע.
דוגמה לתכנון
מערכת שולחת יצירת הזמנה ומקבלת ניתוק. במקום ליצור פעולה חדשה מיד, היא בודקת תוצאה לפי מזהה מוכר או חוזרת לפי מדיניות הספק. אותו מזהה אינו מיועד להזמנה אחרת.
רשימת בדיקה לפני שממשיכים
- מזהה פעולה אינו משתנה בכל ניסיון.
- נבדקה מדיניות הספק למסלול הכתיבה.
- יש טיפול בתוצאה לא ידועה.
- קיים רישום תפעולי בלי מפתחות גישה.
דוגמה לתמיכת Stripe בבקשות Idempotent
הכנת בריף לפרויקט
כלי לאפיון אתר ומערכת עסקית — הגדירו מטרה, היקף וחומרים. בסיום אפשר לערוך, להעתיק או להדפיס את הסיכום ולפנות לפי בחירה.
דוגמאות מהעבודות שלנו
תכנון הפרויקט עם POCAST
לפרטי השירות ולפנייה בנושא מניעת פעולות API כפולות בחיבור מערכות. שלחו מטרה, חומרים קיימים והיקף רצוי; ההצעה תגדיר תכולה ותוצרים לפני תחילת עבודה.
למרכז המדריכים בנושא בית תוכנה ופיתוח.