שליחת בקשת HTTP
הפעולה שליחת בקשת HTTP מחברת את זרימת העבודה שלך לשרת אינטרנט או לכתובת URL ושולחת בקשות HTTP.
לאחר ש-Flow שולח את בקשת ה-HTTP שלך, הוא ממתין לכל היותר 30 שניות לקוד תגובה של HTTP. אם Flow לא קיבל תגובה לאחר 30 שניות, הוא סוגר את החיבור לאפליקציה שלך. לאחר מכן, הוא מנסה לשלוח את הבקשה שוב.
שדות
הפעולה שליחת בקשת HTTP כוללת את השדות הבאים.
| שדה | תיאור |
|---|---|
| שיטת HTTP | שיטת בקשת ה-HTTP שיש לשלוח. הפעולה שליחת בקשת HTTP תומכת בשיטות הבאות:
|
| כתובת URL | כתובת ה-URL של השרת שאליו נשלחת בקשת ה-HTTP. |
| כותרות | צמדי מפתח-ערך עבור בקשת ה-HTTP. ניתן להזין מספר צמדים של מפתח וערך. |
| גוף | התוכן שיישלח לשרת. |
| בשגיאת לקוח (תגובת 4XX) | בעת קבלת קוד תגובה המציין שגיאת לקוח, Flow תבצע את הפעולות הבאות:
|
| בשגיאת שרת (תגובת 5XX או 429) | בעת קבלת קוד תגובה המציין שגיאת שרת, Flow תבצע את הפעולות הבאות:
|
נתונים שהוחזרו
כדי לגשת לנתונים שהוחזרו בשלבים שאחרי פעולה זו, יש להשתמש במשתנה שנקרא sendHttpRequest, הכולל את כל הפרטים של תגובת ה-HTTP. לחלופין, ניתן להשתמש בפעולה Run code כדי לנתח את ה-body (גוף) של התגובה לשימוש בשלבים הבאים של זרימת העבודה, כמו בדוגמה שבהמשך.
אם משתמשים בפעולה Send HTTP request כמה פעמים באותה זרימת עבודה, יתווסף מספר לשם המשתנה. לדוגמה, בזרימת עבודה שמשתמשת בפעולה Send HTTP request פעמיים, המשתנה הראשון של הנתונים שהוחזרו יהיה sendHttpRequest והמשתנה השני יהיה sendHttpRequest1. אי אפשר להתאים אישית את השם הזה.
קודי תגובה
הטבלה הבאה מתארת כיצד Flow מעבדת את קוד תגובת ה-HTTP לאחר קבלת התגובה.
| קוד תגובת HTTP | כיצד Flow מעבדת את קוד התגובה |
|---|---|
| 2XX או 3XX - הצלחה | Flow מסמנת את בקשת ה-HTTP כהצלחה ומבצעת את הפעולות הבאות בזרימת העבודה. |
| שגיאות 4XX, ושגיאות 5XX ו-429 | בהתאם לאופן שבו הפעולה הוגדרה, Flow תבצע את הפעולות הבאות:
|
| קוד תגובה אחר | אם התגובה מחזירה קוד שלא מתואר בטבלה זו, או שהזמן הקצוב שלה פג בעת ניסיון חוזר של פעולות, Flow תסמן את בקשת ה-HTTP כנכשלת, תכשיל את ריצת זרימת העבודה ולא תבצע את פעולות ההמשך של זרימת העבודה. |
סודות
סודות משמשים לאחסון מאובטח של מידע רגיש לשימוש בפעולה Send HTTP request, כגון אסימוני גישה או סיסמאות. יוצרים ומנהלים סודות מתוך הדף Flow > הגדרות. סוד מכיל מזהה ייחודי, ערך ותיאור. ניתן להפנות אל הסוד כמשתנה Liquid (למשל {{secrets.handle}}) או מהאפשרות Add secret (הוספת סוד) בעת הגדרת השדות URL, ערך הכותרת או גוף הבקשה. הערכים של הסודות לעולם אינם מוצגים בממשק של Flow, והם מצונזרים מיומני הריצה של זרימת העבודה.
טריגרים
ניתן להשתמש בפעולה Send HTTP request בכל זרימת עבודה.
דוגמאות
דוגמה 1: שליחת בקשת HTTP לשירות חיצוני
בדוגמה זו, נשתמש ב-Flow כדי לשלוח בקשת HTTP לשירות חיצוני.
לפני שמתחילים, יש להגדיר שירות אינטרנט שמקבל בקשות HTTP ומאחסן את הנתונים של בקשות אלו למטרות בדיקה, כמו Request Catcher. יש לזכור לנקוט משנה זהירות בעת שליחת מידע רגיש (כמו סיסמאות או מפתחות API) לשירות של צד שלישי.
שלבים:
- יש לבחור את הטריגר Product status updated, המאפשר לבדוק את זרימת העבודה הזו על-ידי שינוי הסטטוס של מוצר.
- יש להוסיף פעולת Send HTTP Request לזרימת העבודה שלך ולחבר אותה לטריגר. לאחר מכן, יש לפתוח את חלונית ההגדרות על ידי לחיצה על השלב Send HTTP Request .
- בשדה HTTP Method, יש להזין
POST. - בשדה URL, יש להזין את כתובת ה-URL לבדיקה, כגון
https://yourFlowTest.requestcatcher.com/test. - בסעיף Headers, יש להזין כותרת עם Key של
Content-Typeו-Value שלtext/plain. - בסעיף Body, יש להזין
{{product.title}}ו-{{product.status}}כדי לשלוח את הכותרת ואת הסטטוס המעודכן של המוצר מהטריגר.
- בשדה HTTP Method, יש להזין
- יש להפעיל את זרימת העבודה.
- יש לבדוק זאת על-ידי שינוי הסטטוס של מוצר, למשל מ-Draft ל-Active.
- יש לבדוק את התוצאות בשירות הבדיקה החיצוני, כגון
https://yourFlowTest.requestcatcher.com/בדוגמה זו.
דוגמה 2: שימוש ב-Run code כדי לנתח תגובת HTTP
בדוגמה זו, נשתמש ב-Flow לשליחת בקשת HTTP לשירות חיצוני, ובפעולה Run code כדי לנתח את ה-body (גוף) של תגובת ה-HTTP לשימוש בשלבים הבאים של זרימת העבודה.
לפני תחילת העבודה, יש לבחור שירות אינטרנט המקבל בקשות HTTP ומחזיר נתונים, כגון Postman Echo. חשוב לנקוט משנה זהירות בעת שליחת נתונים רגישים (כגון סיסמאות או מפתחות API) לשירות של צד שלישי.
שלבים:
יש לבחור את הטריגר Product status updated, המאפשר לבדוק את זרימת העבודה הזו על-ידי שינוי הסטטוס של מוצר.
יש להוסיף פעולת שליחת בקשת HTTP (Send HTTP Request) לזרימת העבודה ולחבר אותה לטריגר. לאחר מכן, יש לפתוח את חלונית ההגדרות על-ידי לחיצה על השלב שליחת בקשת HTTP.
בשדה HTTP Method, יש להזין
POST.בשדה URL, יש להזין את כתובת ה-URL לבדיקה, כגון
https://postman-echo.com/post.במקטע כותרות (Headers), יש להזין כותרת שבה ה-מפתח (Key) הוא
Content-Typeוה-ערך (Value) הואapplication/json.במקטע גוף (Body), יש להזין את ה-JSON לדוגמה שיוחזר לזרימת העבודה, כגון:
{ "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
יש להוסיף את הפעולה הפעלת קוד לזרימת העבודה ולחבר אותה לפעולה שליחת בקשת HTTP. לאחר מכן, יש לפתוח את חלונית ההגדרות על-ידי לחיצה על השלב הפעלת קוד.
בשדה הגדרת קלטים, יש לכלול את ה-
bodyהמוחזר על-ידי האובייקטsendHTTPrequest, כגון:query{ sendHttpRequest { body } }בשדה הגדרת פלטים, כפי שמוגדר בסכימת הפלטים, כגון:
type Output { productTitle: String! productStatus: String! }בשדה כתיבת קוד, יש לנתח את התגובה באמצעות השיטה
JSON.parseולוודא שהנתונים המוחזרים תואמים למבנה ולסוגים שהוגדרו בסכימת הפלטים, כגון:export default function main(input) { const body = JSON.parse(input.sendHttpRequest.body); console.log("body is", body); return { productTitle: body.data.productTitle, productStatus: body.data.productStatus } }
יש להוסיף את הפעולה רישום פלט ביומן (Log output) לזרימת העבודה ולחבר אותה לפעולה הפעלת קוד. לאחר מכן, יש לפתוח את חלונית ההגדרות על-ידי לחיצה על השלב הפעלת קוד.
בשדה פלט, יש לכלול את המשתנים המוחזרים על-ידי השלב הפעלת קוד, כגון:
Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
יש להפעיל את זרימת העבודה.
יש לבדוק זאת על-ידי שינוי הסטטוס של מוצר, למשל מ-Draft ל-Active.
יש לבחון את הריצה שהתקבלה בדף Flow / ריצות אחרונות, ולשים לב שהערכים בשלב רישום פלט ביומן תואמים לערכים שחזרו מהפלט של השלב שליחת בקשת HTTP.
תבניות
הודעה לספק מילוי ההזמנות על הזמנות עתידיות
שליחת בקשת HTTP לספק מילוי ההזמנות כאשר הזמנות מתויגות כ-"Warehouse" ב-Order Tagger. הצגת התבנית
שליחת הזמנות חדשות אל Airtable
שליחת הזמנות אל Airtable בעת יצירת הזמנה. הצגת התבנית
שליחת כל המוצרים הקיימים והחדשים אל Airtable
חיפוש מוצרים שלא נשלחו אל Airtable (לפי תג) בכל 10 דקות, ושליחתם אל Airtable. הצגת התבנית
עדכון מוצרים באצוות מתוך נתוני מוצרים המאוחסנים ב-Airtable
עדכון מוצרים באצוות מתוך נתוני מוצרים המאוחסנים ב-Airtable. הצגת התבנית
הודעה ללקוחות על כרטיסי מתנה שעומדים לפוג באמצעות SendGrid
קבלת כל כרטיסי המתנה שעומדים לפוג בעוד 7 ימים מדי יום, ושליחת דוא"ל ללקוחות באמצעות SendGrid. הצגת התבנית
שליחת דוא"ל באמצעות SendGrid כאשר לקוחות מבצעים הזמנה לפריט מותאם אישית
שליחת דוא"ל תפעולי באמצעות SendGrid כאשר לקוח מבצע הזמנה לפריט מותאם אישית. הצגת התבנית