طلب http
تم تصميم عقدة http request لأداء طلبات HTTP إلى خدمات الويب أو واجهات برمجة التطبيقات الخارجية. تدعم هذه العقدة عدة طرق HTTP، وأنواع البيانات، والمصادقة، وإدارة مرنة للطلبات والاستجابات.
إعدادات عقدة http request

1. الاسم
حقل لتحديد اسم العقدة.
يتم عرض الاسم في مساحة العمل ويساعد في التعرف بسهولة على العقدة.
إذا ترك فارغًا، سيتم تسمية العقدة بـ http request.
مثال:
- اسم العقدة:
الحصول على بيانات الطقس
2. الطريقة
طريقة HTTP التي ستستخدم في الطلب. يعتمد اختيار الطريقة على نوع العملية التي يجب تنفيذها.
الطرق المتاحة:
GET: استرجاع البيانات.POST: إرسال البيانات.PUT: تحديث البيانات.DELETE: حذف البيانات.PATCH: تحديث البيانات جزئيًا.HEAD: استرجاع رؤوس الاستجابة.OPTIONS: الحصول على معلومات حول واجهة برمجة التطبيقات.
مثال:
- الطريقة:
POST
3. الرابط
حقل لتحديد عنوان URL ثابت سيتم إرسال الطلب إليه.
إذا كان يجب تعيين العنوان ديناميكيًا، يمكن تمريره في msg.url.
مثال:
- الرابط:
https://api.example.com/data
4. البيانات
يحدد كيفية إضافة البيانات المدخلة إلى طلب HTTP. الخيارات المتاحة هي:
-
تجاهل:
لن يتم استخدام البيانات المدخلة في الطلب. سيتم تجاهلmsg.payload، إذا كانت موجودة.مثال:
إذا كانتmsg.payloadتحتوي على كائن JSON، فلن يتم تضمينه في الطلب.
-
إضافته إلى معلمات الاستعلام:
سيتم تحويل البيانات منmsg.payloadإلى معلمات استعلام وإضافتها إلى عنوان URL.مثال:
إذا كانتmsg.payloadتحتوي على:{
"key1": "value1",
"key2": "value2"
}إذا تم تحديد الرابط كـ
http://example.com/api، سيكون الطلب النهائي:
GET http://example.com/api?key1=value1&key2=value2.
-
إرسالها كجسم الطلب:
سيتم إرسال البيانات منmsg.payloadفي جسم الطلب. هذه الخيار مناسب لطرق مثلPOSTوPUTوPATCH، حيث يتم غالبًا إرسال البيانات في الجسم.مثال:
إذا كانتmsg.payloadتحتوي على:{
"name": "جون دو",
"email": "john.doe@example.com"
}إذا كانت طريقة الطلب هي
POST، سيتم إرسال البيانات في جسم الطلب مع المحتوى المناسب.
5. الإرجاع
يحدد التنسيق الذي ستقوم العقدة بمعالجة الاستجابة من الخادم به.
الخيارات:
- سلسلة UTF-8: يتم تحويل الاستجابة إلى سلسلة (افتراضي).
- Buffer: يتم إرجاع الاستجابة ككائن
Buffer(مفيد للبيانات الثنائية مثل الصور أو الملفات). - JSON: إذا كانت استجابة الخادم بتنسيق JSON، يتم تحويلها تلقائيًا إلى كائن JavaScript.
مثال:
- إذا تم اختيار
JSON، ستكون الاستجابة:يتم تحويلها إلى:{"status": "ok", "value": 42}msg.payload = { status: "ok", value: 42 };
6. المصادقة
تدعم العقدة آليات المصادقة المدمجة.
المصادقة الأساسية
- اسم المستخدم: اسم المستخدم.
- كلمة المرور: كلمة المرور.
رمز الوصول
- الرمز: رمز الوصول.
التجزئة
- اسم المستخدم: اسم المستخدم.
- كلمة المرور: كلمة المرور.
بيانات المدخلات
تقبل عقدة http request كائن رسالة msg مع المعلمات التالية:
- msg.url: عنوان URL للطلب (إذا لم يتم تحديده في إعدادات العقدة).
- msg.method: طريقة HTTP (إذا لم يتم تعيينها في إعدادات العقدة).
- msg.payload: جسم الطلب (يستخدم لطرق
POSTوPUTوPATCH). - msg.headers: رؤوس طلب HTTP (كائن).
بيانات المخرجات
ترجع العقدة كائن msg مع معلومات حول الطلب المنفذ:
- msg.payload: بيانات الاستجابة من الخادم.
- msg.statusCode: رمز الحالة HTTP للاستجابة (مثل
200أو404). - msg.headers: رؤوس الاستجابة.
- msg.responseUrl: عنوان URL الذي تم إرسال الطلب إليه.
- msg.error: وصف الخطأ (إذا فشل الطلب).
أمثلة الاستخدام
المثال 1: إجراء طلب GET
إعدادات العقدة:
- الطريقة:
GET - عنوان URL:
https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London
التدفق:
[inject] ---> [http request] ---> [debug]
النتيجة: ستعيد العقدة JSON مع حالة الطقس الحالية.
المثال 2: إرسال البيانات عبر POST
إعدادات العقدة:
- الطريقة:
POST - عنوان URL:
https://api.example.com/devices - البيانات:
JSON
التدفق:
[function] ---> [http request] ---> [debug]
الكود في عقدة function:
msg.payload = {
deviceId: "sensor123",
status: "active"
};
msg.headers = { "Content-Type": "application/json" };
return msg;
النتيجة: سيتم إرسال البيانات، وستعيد العقدة استجابة الخادم.
المثال 3: عنوان URL ديناميكي ومصادقة
إعدادات العقدة:
- عنوان URL: (اتركه فارغًا)
التدفق:
[function] ---> [http request] ---> [debug]
الكود في عقدة function:
msg.url = "https://api.example.com/user/123";
msg.headers = { Authorization: "Bearer YOUR_TOKEN" };
return msg;
النتيجة: ستقوم العقدة بإجراء طلب إلى عنوان URL المحدد مع رمز المصادقة.