דלג לתוכן הראשי

צומת http request

צומת http request מיועד לביצוע בקשות HTTP לשירותי אינטרנט חיצוניים או API. הוא תומך במגוון שיטות HTTP, סוגי נתונים, אימות וניהול גמיש של בקשות ותשובות.


הגדרות צומת http request

IMG2

1. שם

שדה לציון שם הצומת.
השם מוצג באזור העבודה ועוזר לזהות בקלות את הצומת.
אם משאירים ריק, הצומת יקרא http request.

דוגמה:

  • שם הצומת: Get Weather Data

2. שיטה

שיטת HTTP שתשמש לבקשה. הבחירה בשיטה תלויה בסוג הפעולה שיש לבצע.

שיטות זמינות:

  • GET: קבלת נתונים.
  • POST: שליחת נתונים.
  • PUT: עדכון נתונים.
  • DELETE: מחיקת נתונים.
  • PATCH: עדכון חלקי של נתונים.
  • HEAD: קבלת כותרות תשובה.
  • OPTIONS: קבלת מידע על ה-API.

דוגמה:

  • שיטה: POST

3. קישור

שדה לציון כתובת URL סטטית שאליה תישלח הבקשה.
אם יש צורך לקבוע את הכתובת באופן דינמי, ניתן להעביר אותה ל-msg.url.

דוגמה:

  • קישור: https://api.example.com/data

4. נתונים

מגדיר כיצד הנתונים הנכנסים יתווספו לבקשת ה-HTTP. האפשרויות הזמינות הן:

  1. התעלם:
    הנתונים הנכנסים לא ישמשו בבקשה. השדה msg.payload, אם קיים, יתעלם.

    דוגמה:
    אם ב-msg.payload נמצא אובייקט JSON, הוא לא ייכלל בבקשה.


  1. הוסף לפרמטרי השאילתה:
    הנתונים מ-msg.payload יומרו לפרמטרי מחרוזת השאילתה (Query Parameters) ויתווספו ל-URL.

    דוגמה:
    אם msg.payload מכיל:

    {
    "key1": "value1",
    "key2": "value2"
    }

    אם הקישור מצוין כ-http://example.com/api, הבקשה הסופית תהיה:
    GET http://example.com/api?key1=value1&key2=value2.


  1. שלח כגוף הבקשה:
    הנתונים מ-msg.payload יישלחו בגוף הבקשה. אפשרות זו מתאימה לשיטות כמו POST, PUT, ו-PATCH, שבהן הנתונים מועברים לרוב בגוף.

    דוגמה:
    אם msg.payload מכיל:

    {
    "name": "John Doe",
    "email": "john.doe@example.com"
    }

    אם שיטת הבקשה היא POST, הנתונים יישלחו בגוף הבקשה עם התוכן המתאים.

5. החזר

מגדיר באיזה פורמט הצומת יטפל בתשובה מהשרת.

אפשרויות:

  • מחרוזת UTF-8: התשובה מומרת למחרוזת (ברירת מחדל).
  • Buffer: התשובה מוחזרת כאובייקט Buffer (שימושי לנתונים בינאריים, כמו תמונות או קבצים).
  • JSON: אם התשובה מהשרת בפורמט JSON, היא מומרת אוטומטית לאובייקט JavaScript.

דוגמה:

  • אם נבחר JSON, התשובה:
    {"status": "ok", "value": 42}
    מומרת ל:
    msg.payload = { status: "ok", value: 42 };

6. אימות

הצומת תומך במנגנוני אימות מובנים.

אימות בסיסי

  • שם משתמש: שם המשתמש.
  • סיסמה: הסיסמה.

טוקן Bearer

  • טוקן: טוקן גישה.

Digest

  • שם משתמש: שם המשתמש.
  • סיסמה: הסיסמה.

נתונים נכנסים

הצומת http request מקבל אובייקט הודעה msg עם הפרמטרים:

  1. msg.url: URL לבקשה (אם לא צוין בהגדרות הצומת).
  2. msg.method: שיטת HTTP (אם לא צוין בהגדרות הצומת).
  3. msg.payload: גוף הבקשה (משמש לשיטות POST, PUT, PATCH).
  4. msg.headers: כותרות בקשת ה-HTTP (אובייקט).

נתונים יוצאים

הצומת מחזירה אובייקט msg עם מידע על הבקשה שבוצעה:

  1. msg.payload: נתוני התשובה מהשרת.
  2. msg.statusCode: קוד הסטטוס של התשובה (למשל, 200 או 404).
  3. msg.headers: כותרות התשובה.
  4. msg.responseUrl: URL שאליו בוצעה הבקשה.
  5. msg.error: תיאור השגיאה (אם הבקשה נכשלה).

דוגמאות לשימוש

דוגמה 1: ביצוע בקשת GET

הגדרות הצומת:

  • שיטה: GET
  • URL: https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London

זרימה:

[inject] ---> [http request] ---> [debug]

תוצאה: הצומת תחזיר JSON עם מזג האוויר הנוכחי.


דוגמה 2: שליחת נתונים דרך POST

הגדרות הצומת:

  • שיטה: POST
  • URL: https://api.example.com/devices
  • נתונים: JSON

זרימה:

[function] ---> [http request] ---> [debug]

קוד בצומת function:

msg.payload = {
deviceId: "sensor123",
status: "active"
};
msg.headers = { "Content-Type": "application/json" };
return msg;

תוצאה: הנתונים יישלחו, והצומת תחזיר את התגובה מהשרת.


דוגמה 3: URL דינמי ואימות

הגדרות הצומת:

  • URL: (להשאיר ריק)

זרימה:

[function] ---> [http request] ---> [debug]

קוד בצומת function:

msg.url = "https://api.example.com/user/123";
msg.headers = { Authorization: "Bearer YOUR_TOKEN" };
return msg;

תוצאה: הצומת תבצע בקשה ל-URL המצויין עם טוקן האימות.