إرسال طلب HTTP

يربط إجراء إرسال طلب HTTP سير عملك بخادم ويب أو عنوان URL ويُرسل طلبات HTTP.

بعد أن يُرسل Flow طلب HTTP الخاص بك، فإنه ينتظر لمدة 30 ثانية كحد أقصى للحصول على رمز استجابة HTTP. وإذا لم يتلقَ Flow استجابة بعد 30 ثانية، فإنه يُغلق الاتصال بتطبيقك. ثم يُعيد محاولة إرسال الطلب لاحقًا.

الحقول

يحتوي إجراء إرسال طلب HTTP على الحقول التالية.

الحقول المُستخدمة في إجراء إرسال طلب HTTP.
الحقلالوصف
طريقة HTTPطريقة طلب HTTP المراد إرساله. يدعم إجراء إرسال طلب HTTP الطرق التالية:
  • Get - يُرسل طلبًا للحصول على معلومات من الخادم.
  • Delete - يزيل موردًا من الخادم.
  • Head - يسترد ترويسات استجابة HTTP الخاصة بالخادم.
  • Options - يسترد الخيارات والميزات التي يدعمها الخادم.
  • Patch - يُحدث موردًا على الخادم جزئيًا.
  • Put - يُحدث موردًا على الخادم.
  • Post - يُنشئ موردًا على الخادم أو يستبدله.
URLعنوان URL للخادم الذي يُرسل إليه طلب HTTP.
الترويساتزوج المفتاح والقيمة لطلب HTTP. يمكن إدخال أزواج متعددة من المفتاح والقيمة.
النصالمحتوى المراد إرساله إلى الخادم.
عند حدوث خطأ من العميل (استجابة 4XX)عند تلقّي رمز استجابة يشير إلى خطأ من العميل، فإن Flow سيقوم بما يلي:
  • إعادة المحاولة - إعادة المحاولة لمدة تصل إلى 24 ساعة حتى يتم تلقّي رمز استجابة مختلف أو انتهاء المهلة.
  • فشل - فشل عملية تشغيل سير العمل.
  • تجاهل - تجاهل الخطأ ومتابعة عملية تشغيل سير العمل.
عند حدوث خطأ من الخادم (استجابة 5XX أو 429)عند تلقّي رمز استجابة يشير إلى خطأ من الخادم، فإن Flow سيقوم بما يلي:
  • إعادة المحاولة - إعادة المحاولة لمدة تصل إلى 24 ساعة حتى يتم تلقّي رمز استجابة مختلف أو انتهاء المهلة.
  • فشل - فشل عملية تشغيل سير العمل.
  • تجاهل - تجاهل الخطأ ومتابعة عملية تشغيل سير العمل.

البيانات المُرجعة

للوصول إلى البيانات المُرجعة في الخطوات التي تلي هذا الإجراء، استخدِم المتغيّر الذي يحمل الاسم sendHttpRequest، والذي يتضمن جميع تفاصيل استجابة HTTP. يمكنك اختياريًا استخدام إجراء Run code لتحليل body الخاص بالاستجابة لاستخدامه في خطوات سير العمل اللاحقة، كما في المثال أدناه.

إذا تم استخدام إجراء Send HTTP request (إرسال طلب HTTP) عدة مرات في سير عمل واحد، يُضاف رقم إلى اسم المتغيّر. على سبيل المثال، في سير العمل الذي يستخدم إجراء Send HTTP request مرتين، يكون المتغيّر الأول للبيانات المُرجعة هو sendHttpRequest ويكون المتغيّر الثاني هو sendHttpRequest1. لا يمكن تخصيص هذا الاسم.

رموز الاستجابة

يصف الجدول التالي كيفية معالجة Flow لـ رمز استجابة HTTP بعد تلقّيه للاستجابة.

كيفية معالجة Flow لرموز استجابة HTTP.
رمز استجابة HTTPكيفية معالجة Flow لرمز الاستجابة
نجاح 2XX أو 3XXيضع Flow علامة على طلب HTTP باعتباره ناجحًا ويُنفّذ الإجراءات اللاحقة في سير العمل.
أخطاء 4XX،
وأخطاء 5XX و429
بناءً على كيفية تكوين الإجراء، فإن Flow سيقوم بما يلي:
  • إعادة المحاولة - إعادة المحاولة لمدة تصل إلى 24 ساعة حتى يتم تلقّي رمز استجابة مختلف أو انتهاء المهلة.
  • فشل - فشل عملية تشغيل سير العمل.
  • تجاهل - تجاهل الخطأ ومتابعة عملية تشغيل سير العمل.
رمز استجابة آخرإذا أرجعت الاستجابة رمزًا غير موصوف في هذا الجدول أو انتهت المهلة عند إعادة محاولة الإجراءات، فإن Flow يضع علامة على طلب HTTP باعتباره فاشلاً، ويفشل عملية تشغيل سير العمل، ولا يتخذ أي إجراءات لاحقة في سير العمل.

الأسرار

تُستخدم الأسرار لتخزين المعلومات الحساسة بأمان لاستخدامها في إجراء Send HTTP request، مثل رموز الوصول أو كلمات المرور. يتم إنشاء الأسرار وإدارتها من صفحة Flow > الإعدادات. يحتوي السر على مقبض وقيمة ووصف. يمكنك الإشارة إلى السر كمتغيّر Liquid (مثل {{secrets.handle}}) أو من خيار إضافة سر عند تكوين حقول URL أو قيمة الترويسة أو النص. لا تظهر قيم الأسرار أبدًا في واجهة Flow ويتم حجبها من سجلات عملية تشغيل سير العمل.

المشغّلات

يمكن استخدام إجراء Send HTTP request في أي سير عمل.

أمثلة

المثال الأول: إرسال طلب HTTP إلى خدمة خارجية

في هذا المثال، يتم استخدام Flow لإرسال طلب HTTP إلى خدمة خارجية.

قبل البدء، قم بتكوين خدمة ويب تتلقى طلبات HTTP وتخزن بيانات هذه الطلبات للاختبار، مثل Request Catcher. تذكر توخي الحذر عند إرسال بيانات حساسة (مثل كلمات المرور أو مفاتيح API) إلى خدمة تابعة لجهة خارجية.

الخطوات:

  1. اختر مشغّل Product status updated (تحديث حالة المنتج)، والذي يتيح لك اختبار سير العمل هذا من خلال تغيير حالة منتج.
  2. أضف إجراء Send HTTP Request إلى سير عملك واربطه بالمشغّل. ثم افتح لوحة التكوين بالنقر على خطوة Send HTTP Request .
    • في حقل طريقة HTTP، أدخل POST.
    • في حقل URL، أدخل عنوان URL المراد اختباره، مثل https://yourFlowTest.requestcatcher.com/test.
    • في قسم الترويسات، أدخل ترويسة بـ مفتاح Content-Type وقيمة text/plain.
    • في قسم النص، أدخل {{product.title}} و{{product.status}} لإرسال عنوان المنتج وحالته المُحدّثة من المشغّل.
  3. قم بتنشيط سير العمل.
  4. اختبره عن طريق تغيير حالة منتج، مثل تغييرها من مسودة إلى نشط.
  5. راقب النتائج في خدمة الاختبار الخارجية، مثل https://yourFlowTest.requestcatcher.com/ في هذا المثال.

المثال الثاني: استخدام Run code لتحليل استجابة HTTP

في هذا المثال، يتم استخدام Flow لإرسال طلب HTTP إلى خدمة خارجية، بالإضافة إلى استخدام إجراء Run code لتحليل body الخاص باستجابة HTTP لاستخدامه في خطوات سير العمل اللاحقة.

قبل البدء، اختر خدمة ويب تتلقى طلبات HTTP وتُرجع بيانات، مثل Postman Echo. تذكّر توخي الحذر عند إرسال بيانات حساسة (مثل كلمات المرور أو مفاتيح API) إلى خدمة طرف ثالث.

الخطوات:

  1. اختر مشغّل Product status updated (تحديث حالة المنتج)، والذي يتيح لك اختبار سير العمل هذا من خلال تغيير حالة منتج.

  2. أضف إجراء إرسال طلب HTTP إلى سير عملك واربطه بالمُشغّل. بعد ذلك، افتح لوحة التهيئة بالضغط على خطوة إرسال طلب HTTP.

    • في حقل طريقة HTTP، أدخل POST.

    • في حقل URL، أدخل الـ URL المراد اختباره، مثل https://postman-echo.com/post.

    • في قسم الترويسات، أدخل ترويسة يكون فيها المفتاح هو Content-Type والقيمة هي application/json.

    • في قسم النص الأساسي، أدخل كود JSON التجريبي لإرجاعه إلى سير العمل، مثل:

      {
          "productTitle": "{{product.title}}",
          "productStatus": "{{product.status}}"
      }
  3. أضف إجراء تشغيل الكود إلى سير عملك واربطه بإجراء إرسال طلب HTTP. بعد ذلك، افتح لوحة التهيئة بالضغط على خطوة تشغيل الكود.

    • في حقل تحديد المدخلات، قم بتضمين الـ body المُرجع من كائن sendHTTPrequest، مثل:

      query{
        sendHttpRequest {
          body
        }
      }
    • في حقل تحديد المخرجات، المعرّف في مخطط المخرجات، مثل:

      type Output {
        productTitle: String!
        productStatus: String!
      }
    • في حقل كتابة الكود، قم بتحليل الاستجابة باستخدام طريقة JSON.parse وتأكد من أن البيانات التي تُرجعها تتطابق مع الشكل والأنواع المعرّفة في مخطط المخرجات، مثل:

      export default function main(input) {
        const body = JSON.parse(input.sendHttpRequest.body);
        console.log("body is", body);
        return {
          productTitle: body.data.productTitle,
          productStatus: body.data.productStatus
        }
      }
  4. أضف إجراء تسجيل المخرجات إلى سير عملك واربطه بإجراء تشغيل الكود. بعد ذلك، افتح لوحة التهيئة بالضغط على خطوة تشغيل الكود.

    • في حقل المخرجات، قم بتضمين المتغيرات المُرجعة من خطوة تشغيل الكود، مثل:

      Title from HTTP response: {{runCode.productTitle}}
      Status from HTTP response: {{runCode.productStatus}}
  5. قم بتنشيط سير العمل.

  6. اختبره عن طريق تغيير حالة منتج، مثل تغييرها من مسودة إلى نشط.

  7. راقب التشغيل الناتج من صفحة Flow / عمليات التشغيل الأخيرة ولاحظ أن القيم في خطوة تسجيل المخرجات تتطابق مع القيم المُرجعة من مخرجات إرسال طلب HTTP.

القوالب

إشعار مزوّد خدمات التنفيذ بخصوص الطلبات القادمة

إرسال طلب HTTP إلى مزوّد خدمات التنفيذ عندما تتم إضافة إشارة "Warehouse" إلى الطلبات في Order Tagger. عرض القالب

إرسال الطلبات الجديدة إلى Airtable

إرسال الطلبات إلى Airtable عند إنشاء طلب. عرض القالب

إرسال جميع المنتجات الحالية والجديدة إلى Airtable

كل 10 دقائق، البحث عن المنتجات التي لم تُرسل إلى Airtable (حسب الإشارة) وإرسالها إلى Airtable. عرض القالب

تحديث المنتجات على دُفعات من بيانات المنتجات المخزنة في Airtable

تحديث المنتجات على دُفعات من بيانات المنتجات المخزنة في Airtable. عرض القالب

إشعار العملاء ببطاقات الهدايا التي تقترب من انتهاء الصلاحية باستخدام SendGrid

كل يوم، الحصول على جميع بطاقات الهدايا التي تنتهي صلاحيتها خلال 7 أيام وإرسال رسائل بريد إلكتروني إلى العملاء باستخدام SendGrid. عرض القالب

إرسال بريد إلكتروني باستخدام SendGrid عندما يُجري العملاء طلبًا لعنصر مخصص

إرسال بريد إلكتروني للمعاملات باستخدام SendGrid عندما يُجري عميل طلبًا لعنصر مخصص. عرض القالب