HookGet English להתחיל בחינם

המסירה הראשונה שלכם

חשבון, יעד, פרסום של אירוע, וציר הזמן שמוכיח שהוא הגיע.

בקצרה

  • פותחים חשבון, מוסיפים יעד, ומפרסמים אירוע אחד.
  • סוד החתימה של היעד מוצג פעם אחת בלבד. שמרו אותו לפני שסוגרים את החלון.
  • ציר הזמן של המסירה מראה את הסטטוס, את זמן התגובה ואת מה שהיעד ענה.

המדריך הזה מוביל אתכם מחשבון ריק ועד מסירה ראשונה שאפשר לעקוב אחריה. יש בו שלושה צעדים, ובכל אחד החלטה שכדאי להבין, כי אותן החלטות ילוו אתכם גם כשיהיו לכם מאות יעדים. הדוגמאות משתמשות ב-curl ובמפתח API ששמור במשתנה HOOKGET_KEY. אם עוד אין לכם חשבון, ההרשמה היא הצעד הראשון, וחשבון חדש נפתח בפרויקט הבדיקה ולא בפרויקט החי.

1. הוספת יעד

יעד (endpoint) הוא כתובת URL שמקבלת מסירות. בפרויקט חי היא חייבת להיות HTTPS, וכתובות פרטיות וכתובות של שירותי metadata בענן נחסמות. הסיבה פשוטה: שירות ששולח בקשות לכל כתובת שמזינים לו יכול בקלות להפוך לפתח אל הרשת הפנימית. לנושא הזה יש מדריך משלו. אפשר להגביל את היעד לסוגי אירועים מסוימים, או להשאיר אותו פתוח לכל האירועים.

curl -X POST https://api.hookget.com/v1/endpoints \
  -H "authorization: Bearer $HOOKGET_KEY" \
  -H "content-type: application/json" \
  -d '{"url":"https://orders.example.com/webhooks","event_types":["order.created"]}'

# {"id":"ep_…","secret":"whsec_…"}   ← the secret appears exactly once

שימו לב לשדה secret בתשובה. זה סוד החתימה של היעד, והוא מופיע בדיוק פעם אחת. הצד המקבל משתמש בו כדי לאמת שכל מסירה באמת הגיעה מכם, ולכן המקום שלו הוא מנהל הסודות של מי שמפעיל את היעד, לא היסטוריית הטרמינל.

2. פרסום אירוע

curl -X POST https://api.hookget.com/v1/events \
  -H "authorization: Bearer $HOOKGET_KEY" \
  -H "content-type: application/json" \
  -d '{"type":"order.created","payload":{"id":"ord_10241","total":149.9}}'

# 202 — stored, then fanned out to every subscribed endpoint

התשובה 202 מגיעה רק אחרי שהאירוע נשמר באחסון קבוע. על הסדר הזה עומדת כל האמינות: אישור שמגיע לפני הכתיבה הוא הבטחה שהשירות לא יכול לקיים. אם השרת נופל בין האישור לכתיבה, אתם בטוחים שהאירוע נשלח והוא בעצם אבד. כשהאישור מגיע אחרי הכתיבה, 202 אומר דבר אחד בלבד: האירוע קיים, ומכאן הוא יפוזר לכל יעד שנרשם אליו.

3. מעקב אחרי המסירה

msg_01J8ZQ3F9VBAQ4E1S0TZY6P8YV ⁦order.created⁩ · 2 יחידות
#שעהסטטוס קודזמן תגובהלמה
1 09:41:02 נכשל 503 1,204 ms השירות לא זמין
2 09:41:07 נכשל 503 980 ms ניסיון חוזר אחרי 5 שניות
3 09:41:37 נכשל timeout 15,000 ms ניסיון חוזר אחרי 30 שניות
4 09:46:37 נמסר 200 142 ms ניסיון חוזר אחרי 5 דקות

אותו webhook-id בכל ניסיון, כך שהצרכן יכול לסנן כפילויות.

כל ניסיון מול יעד אחד: מה נשלח, מה חזר, כמה זמן זה לקח וכמה חיכינו לפני הניסיון הבא. זו התשובה לשאלה "שלחתם או לא?" בלי שאילתה למסד הנתונים.

כל ניסיון מסירה נרשם עם הסטטוס שלו, זמן התגובה והקילובייט הראשון של התשובה. כך אפשר לענות ללקוח ששואל "שלחתם או לא?" בלי לנחש, וניסיון חוזר הוא משהו שרואים, לא תעלומה.

curl https://api.hookget.com/v1/events/msg_01M0…/attempts \
  -H "authorization: Bearer $HOOKGET_KEY"
שדהמה הוא אומר לכם
statusנמסר, נכשל, או עדיין ממתין
http_statusמה היעד ענה, אם הוא ענה בכלל
response_msכמה זמן לקחה התשובה. מהמספר הזה מחושב ה-p95 בנתוני התקינות של היעד
error_classלמה אין סטטוס: timeout, שגיאת חיבור, או כתובת שנחסמה
response_body_first_1kbתחילת גוף התשובה, ושם בדרך כלל נמצאת הסיבה
attempt_noמספר הניסיון, כדי שניסיון חוזר ייראה כמו שהוא

בצד המקבל, מאמתים לפני שמפענחים. מדריך החתימות מביא את הפונקציה במלואה.

שאלות

למה סוד החתימה מוצג רק פעם אחת?

כי הוא הדבר היחיד שמאפשר לצד המקבל לדעת שמסירה באמת הגיעה מכם. סוד שאפשר לשלוף מלוח הבקרה שוב ושוב יכול לדלוף מיותר מקומות. שמרו אותו במנהל הסודות שלכם לפני שסוגרים את החלון. אם הוא אבד, מחליפים אותו, כמו שמוסבר במדריך החתימות.

למה הפרסום מחזיר 202 ולא 200?

כי 202 אומר "התקבל ונשמר", לא "נמסר". האירוע נכתב לאחסון קבוע, ורק אז התשובה חוזרת אליכם. המסירה עצמה ליעדים קורית אחר כך, ואת התוצאה שלה רואים בציר הזמן של האירוע.

אפשר להשתמש בכתובת HTTP רגילה, בלי HTTPS?

בפרויקט חי לא: היעד חייב להיות HTTPS. כתובות פרטיות וכתובות של שירותי metadata בענן נחסמות בכל מקרה. לניסויים יש פרויקט בדיקה, ומדריך הבדיקות מסביר מה מותר בו.

איפה רואים מה היעד ענה?

ברשימת הניסיונות של האירוע. כל ניסיון נשמר עם הסטטוס, זמן התגובה והקילובייט הראשון של גוף התשובה, ואפשר לקרוא אותם דרך ה-API או בלוח הבקרה. כשמסירה נכשלת, מדריך איתור התקלות מסביר מה כל קוד סטטוס אומר בדרך כלל.

להתחיל למסור וובהוקים היום

מפנים את הוובהוקים ל-HookGet ורואים את המסירה הראשונה מגיעה, חתומה, תוך פחות מדקה.

פתיחת חשבון חינם לנסות את בודק הוובהוקים החינמי

10,000 מסירות בחודש בחינם, בלי כרטיס אשראי. המסלול החינמי חוסם ולא מחייב, כך שניסיון לא יכול להסתיים בחשבונית.