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

عقدة http in

تُستخدم عقدة http in لإنشاء نقاط نهاية HTTP تعالج طلبات HTTP الواردة (GET وPOST وPUT وغيرها). وهي نقطة الدخول للتفاعل مع الأنظمة الخارجية عبر بروتوكول HTTP.

مهم: تُضاف البادئة /api/admin/workflows/endpoints/ تلقائيًا إلى كل المسارات التي تحددها.


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

نافذة «Node Information» لعقدة «http in»: الطريقة «POST»، والمسار /get-payment-link في الحقل «Link»

1. Name​

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

مثال:

  • اسم العقدة: get payment link

2. Method​

طريقة HTTP التي تعالجها العقدة. الخيارات المتاحة:

  • GET: لجلب البيانات.
  • POST: لإرسال البيانات.
  • PUT: لتحديث البيانات.
  • DELETE: لحذف البيانات.
  • PATCH: للتحديث الجزئي للبيانات.
  • OPTIONS: لطلب معلومات وصفية عن الـ API.

المسار (نقطة النهاية) الذي تُعالَج عليه الطلبات.

  • يبدأ المسار بـ /.
  • يمكن أن يتضمن متغيرات مسار، مثل: /data/:id.

مثال:

  • Link: /get-payment-link
  • Link مع معامل: /get-payment-link/:orderId

4. Protected​

خانة اختيار لحماية نقطة النهاية. مفعّلة افتراضيًا.

5. Output Example (JSON)​

مثال بتنسيق JSON على البيانات التي تمررها العقدة إلى ما بعدها في التدفق.
يُبنى من هذا المثال مخطط البيانات للعقدة التالية، فتظهر حقوله في قسم Input Schema لتلك العقدة. إذا كان الحقل فارغًا أو كان الـ JSON فيه غير صالح، فلن يُمرَّر أي مخطط إلى ما بعدها.


تنسيق الرسالة الواردة​

عندما يصل طلب إلى المسار المحدد بالطريقة المختارة، تنشئ عقدة http in رسالة msg لها الخصائص التالية:

  • msg.req: كائن طلب HTTP، ويتضمن الترويسات والمعاملات والجسم وغيرها من البيانات.

    • msg.req.params: معاملات المسار (مثل :id في /api/data/:id).
    • msg.req.query: معاملات GET في الطلب.
    • msg.req.body: جسم الطلب (للطرق POST وPUT وPATCH).
  • msg.res: كائن للتحكم في استجابة HTTP. يُمرَّر عادةً إلى عقدة http response التي ترسل الاستجابة إلى العميل.


أمثلة على الاستخدام​

مثال 1: معالجة طلب GET​

السيناريو: إرجاع بيانات درجة الحرارة.

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

  • Method: GET
  • Link: /temperature

التدفق:

[http in] ---> [function] ---> [http response]

كود عقدة function:

msg.payload = { temperature: 22.5, unit: "Celsius" };
return msg;

النتيجة: يتلقى العميل الذي يرسل طلب GET إلى /api/admin/workflows/endpoints/temperature استجابة JSON التالية:

{
"temperature": 22.5,
"unit": "Celsius"
}

مثال 2: معالجة طلب POST​

السيناريو: استقبال بيانات من جهاز وحفظها.

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

  • Method: POST
  • Link: /data

التدفق:

[http in] ---> [function] ---> [http response]

كود عقدة function:

// قراءة البيانات من جسم الطلب
const data = msg.req.body;
msg.payload = { status: "success", receivedData: data };
return msg;

النتيجة: تستقبل العقدة البيانات من جسم طلب POST وتعيد استجابة تؤكد استلامها.


مثال 3: استخدام معاملات المسار​

السيناريو: جلب البيانات حسب معرّف الجهاز.

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

  • Method: GET
  • Link: /device/:id

التدفق:

[http in] ---> [function] ---> [http response]

كود عقدة function:

const deviceId = msg.req.params.id;
msg.payload = { deviceId: deviceId, status: "active" };
return msg;

النتيجة:

{
"deviceId": "123",
"status": "active"
}