عقدة http in
تُستخدم عقدة http in لإنشاء نقاط نهاية HTTP تعالج طلبات HTTP الواردة (GET وPOST وPUT وغيرها). وهي نقطة الدخول للتفاعل مع الأنظمة الخارجية عبر بروتوكول HTTP.
مهم: تُضاف البادئة /api/admin/workflows/endpoints/ تلقائيًا إلى كل المسارات التي تحددها.
إعدادات عقدة http in

1. Name
اسم العقدة.
يظهر الاسم في مساحة العمل ويساعدك على تمييز العقدة.
إذا تركت الحقل فارغًا، فسيكون اسم العقدة http in.
مثال:
- اسم العقدة:
get payment link
2. Method
طريقة HTTP التي تعالجها العقدة. الخيارات المتاحة:
- GET: لجلب البيانات.
- POST: لإرسال البيانات.
- PUT: لتحديث البيانات.
- DELETE: لحذف البيانات.
- PATCH: للتحديث الجزئي للبيانات.
- OPTIONS: لطلب معلومات وصفية عن الـ API.
3. Link
المسار (نقطة النهاية) الذي تُعالَج عليه الطلبات.
- يبدأ المسار بـ
/. - يمكن أن يتضمن متغيرات مسار، مثل:
/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"
}