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

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

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