VUZDevelopers
Concepts

אידמפוטנטיות (Idempotency)

המצב האמיתי היום — ואיך למנוע חיוב כפול של לקוח בעקבות ניסיון חוזר.

קראו את זה לפני שאתם בונים לוגיקת ניסיון-חוזר (retry). ה-endpoints POST /api/v1/documents ו-POST /api/v1/clients אינם תומכים כיום במפתח אידמפוטנטיות. ניסיון חוזר על בקשה שנכשלה (timeout, שגיאת 5xx, חיבור לא יציב) יוצר מסמך או לקוח שני.

למה זה כך

משטח האינטגרציה המקורי של VUZ — /integrations/*, שנבנה עבור תוסף ה-WooCommerce ועדיין פעיל כ-alias לתאימות לאחור — כן תומך במפתח אידמפוטנטיות אמיתי: externalReference (בפורמט source:site:entity:id). ה-endpoints החדשים והנבחרים /api/v1/documents ו- /api/v1/clients נבנו ישירות מעל ה-DTO-ים של לוח הבקרה, שאין להם שדה כזה — זהו פער אמיתי, לא השמטה בתיעוד.

מה לעשות היום

  1. שמרו מיפוי משלכםהמזהה שלכם → vuz.document.id (וגם ללקוחות) מיד לאחר קבלת 201. לפני יצירה, בדקו אם כבר יש מיפוי לפני שאתם שולחים שוב.
  2. אם אתם כבר על WooCommerce — המשיכו להשתמש ב-/integrations/documents, שיש לו אידמפוטנטיות אמיתית דרך externalReference.
  3. בכשל לא ברור — לפני ניסיון חוזר, בדקו עם GET /documents?clientId=... (או המיפוי שלכם) האם הבקשה כבר הצליחה.

On this page