انتقل إلى المحتوى الرئيسي

عقدة http request

عقدة http request مصممة لتنفيذ طلبات HTTP إلى خدمات الويب الخارجية أو واجهات برمجة التطبيقات (API). تدعم عدة طرق HTTP، وطرق نقل البيانات، والمصادقة، وإدارة مرنة للطلبات والاستجابات.


إعدادات عقدة http request

IMG2

1. الاسم

حقل لتحديد اسم العقدة.
يظهر الاسم في مساحة العمل ويساعد في التعرف بسهولة على العقدة.
إذا ترك فارغًا، ستسمى العقدة http request.

مثال:

  • اسم العقدة: الحصول على بيانات الطقس

2. الطريقة

طريقة HTTP التي ستستخدم في الطلب. يعتمد اختيار الطريقة على نوع العملية التي يجب تنفيذها.

الطرق المتاحة:

  • GET: الحصول على البيانات.
  • POST: إرسال البيانات.
  • PUT: تحديث البيانات.
  • DELETE: حذف البيانات.
  • HEAD: الحصول على رؤوس الاستجابة.

مثال:

  • الطريقة: 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، حيث يتم غالبًا تمرير البيانات في الجسم.

    مثال:
    إذا كان msg.payload يحتوي على:

    {
    "name": "جون دو",
    "email": "john.doe@example.com"
    }

    إذا كانت طريقة الطلب هي POST، سيتم إرسال البيانات في جسم الطلب بالمحتوى المناسب.

5. الإرجاع

تحدد كيفية معالجة العقدة للاستجابة من الخادم.

الخيارات:

  • نص: يتم تحويل الاستجابة إلى نص (افتراضيًا).
  • كائن JSON: إذا كانت استجابة الخادم بتنسيق JSON، سيتم تحويلها تلقائيًا إلى كائن JavaScript.
  • مخزن ثنائي: يتم إرجاع الاستجابة كمخزن ثنائي (مفيد للبيانات الثنائية مثل الصور أو الملفات).

مثال:

  • إذا تم اختيار كائن JSON، فإن الاستجابة:
    {"status": "ok", "value": 42}
    سيتم تحويلها إلى:
    msg.payload = { status: "ok", value: 42 };

6. استخدام المصادقة

تفعيل المصادقة المدمجة (افتراضيًا معطلة). عند تفعيلها، يظهر حقل النوع مع طريقة المصادقة (افتراضيًا basic):

basic

  • اسم المستخدم: اسم المستخدم.
  • كلمة المرور: كلمة المرور.

bearer

  • كلمة المرور: رمز الوصول.

digest

  • اسم المستخدم: اسم المستخدم.
  • كلمة المرور: كلمة المرور.

البيانات المدخلة

تقبل عقدة http request كائن الرسالة msg مع المعلمات:

  1. msg.url: URL للطلب (إذا لم يتم تحديده في إعدادات العقدة).
  2. msg.method: طريقة HTTP (إذا لم يتم تحديدها في إعدادات العقدة).
  3. msg.payload: جسم الطلب (يستخدم لطرق POST وPUT).
  4. msg.headers: رؤوس طلب HTTP (كائن).

البيانات الخارجة

ترجع العقدة كائن msg مع معلومات حول الطلب المنفذ:

  1. msg.payload: بيانات الاستجابة من الخادم.
  2. msg.statusCode: رمز الحالة HTTP للاستجابة (مثل 200 أو 404).
  3. msg.headers: رؤوس الاستجابة.
  4. msg.responseUrl: URL الذي تم تنفيذ الطلب عليه.
  5. msg.error: وصف الخطأ (إذا فشل الطلب).

أمثلة الاستخدام

المثال 1: تنفيذ طلب GET

إعدادات العقدة:

  • الطريقة: GET
  • الرابط: https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London

التدفق:

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

النتيجة: ستعيد العقدة JSON مع حالة الطقس الحالية.


المثال 2: إرسال البيانات عبر POST

إعدادات العقدة:

  • الطريقة: POST
  • الرابط: https://api.example.com/devices
  • البيانات: إرسال كجسم الطلب

التدفق:

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

الكود في عقدة function:

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

النتيجة: سيتم إرسال البيانات، وستعيد العقدة استجابة الخادم.


المثال 3: URL ديناميكي ومصادقة

إعدادات العقدة:

  • الرابط: (تركه فارغًا)

التدفق:

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

الكود في عقدة function:

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

النتيجة: ستنفذ العقدة الطلب إلى URL المحدد مع رمز المصادقة.