عقدة 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: تُستخدم لطلبات الحصول على معلومات وصفية عن API.
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"
}