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

1. الاسم
حقل لتحديد اسم العقدة.
يتم عرض الاسم في مساحة العمل ويساعد في التعرف بسهولة على العقدة.
إذا تُرك فارغًا، ستُسمى العقدة http in.
مثال:
- اسم العقدة:
get payment link
2. الطريقة
طريقة HTTP التي ستتعامل معها العقدة. الخيارات المتاحة هي:
- GET: تُستخدم لاسترجاع البيانات.
- POST: تُستخدم لإرسال البيانات.
- PUT: تُستخدم لتحديث البيانات.
- DELETE: تُستخدم لحذف البيانات.
- PATCH: تُستخدم لتحديث البيانات جزئيًا.
- OPTIONS: تُستخدم للطلبات للحصول على بيانات وصفية حول واجهة برمجة التطبيقات.
3. الرابط
يحدد المسار (نقطة النهاية) للتعامل مع الطلبات.
- يبدأ المسار بـ
/. - يمكن أن يتضمن معلمات المسار، على سبيل المثال:
/data/:id.
مثال:
- الرابط:
/get-payment-link - رابط مع معلمة:
/get-payment-link/:orderId
تنسيق الرسالة الواردة
عند استلام طلب على المسار المحدد مع الطريقة المختارة، تقوم عقدة 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
السيناريو: إرجاع بيانات درجة الحرارة.
إعدادات العقدة:
- الطريقة:
GET - الرابط:
/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
السيناريو: استلام وحفظ البيانات من جهاز.
إعدادات العقدة:
- الطريقة:
POST - الرابط:
/data
التدفق:
[http in] ---> [function] ---> [http response]
الكود لعقدة function:
// قراءة البيانات من جسم الطلب
const data = msg.req.body;
msg.payload = { status: "success", receivedData: data };
return msg;
النتيجة: ستقبل العقدة البيانات من جسم طلب POST وتعيد استجابة تأكيد.
المثال 3: استخدام معلمات المسار
السيناريو: استرجاع البيان ات بواسطة معرف الجهاز.
إعدادات العقدة:
- الطريقة:
GET - الرابط:
/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"
}