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

عقدة http in

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

مهم: جميع المسارات المحددة تحصل تلقائيًا على بادئة: /api/admin/workflows/endpoints/.


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

IMG2

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"
}