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

عقدة http request

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


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

نافذة "Node Information" لعقدة http request باسم "paypal auth": الطريقة "POST"، وعنوان الحصول على رمز PayPal sandbox، والخيار "Object JSON"، و"Use Authentication" مفعّل بالنوع "basic"

1. Name​

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

مثال:

  • اسم العقدة: Get Weather Data

2. Method​

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

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

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

مثال:

  • Method: POST

عنوان URL ثابت يُرسَل إليه الطلب.
لتحديد العنوان ديناميكيًا، يمكنك تمريره في msg.url.

مثال:

  • Link: https://api.example.com/data

4. Data​

يحدد كيف تُضاف البيانات الواردة إلى طلب HTTP. الخيارات المتاحة:

  1. Ignore (الخيار الافتراضي):
    لا تُستخدم البيانات الواردة في الطلب، ويُتجاهَل الحقل msg.payload إن وُجد.

    مثال:
    إذا احتوى msg.payload على كائن JSON، فلن يُضمَّن في الطلب.


  1. Add to query parameters:
    تُحوَّل البيانات من msg.payload إلى معاملات سلسلة الاستعلام (Query Parameters) وتُضاف إلى عنوان URL.

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

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

    وكانت قيمة Link هي http://example.com/api، يصبح الطلب النهائي:
    GET http://example.com/api?key1=value1&key2=value2.


  1. Send as request body:
    تُرسَل البيانات من msg.payload في جسم الطلب. يناسب هذا الخيار الطريقتين POST وPUT، إذ تُمرَّر البيانات فيهما غالبًا في جسم الطلب.

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

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

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

5. Return​

يحدد الصيغة التي تعالج بها العقدة استجابة الخادم.

الخيارات:

  • String: تُحوَّل الاستجابة إلى سلسلة نصية (الخيار الافتراضي).
  • Object JSON: إذا كانت استجابة الخادم بصيغة JSON، تُحوَّل تلقائيًا إلى كائن JavaScript.
  • Binary Buffer: تُرجَع الاستجابة كمخزن مؤقت ثنائي (مفيد للبيانات الثنائية مثل الصور أو الملفات).

مثال:

  • إذا اخترت Object JSON، فإن الاستجابة:
    {"status": "ok", "value": 42}
    تُحوَّل إلى:
    msg.payload = { status: "ok", value: 42 };

6. Use Authentication​

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

basic​

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

bearer​

  • Password: رمز الوصول.

digest​

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

المدخلات​

تستقبل عقدة 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​

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

  • Method: GET
  • Link: https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London

التدفق:

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

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


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

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

  • Method: POST
  • Link: https://api.example.com/devices
  • Data: Send as request body

التدفق:

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

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

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

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


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

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

  • Link: (اتركه فارغًا)

التدفق:

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

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

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

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