HTTP request بھیجیں

HTTP request بھیجیں ایکشن آپ کے ورک فلو کو کسی ویب سرور یا URL سے منسلک کرتا ہے اور HTTP request بھیجتا ہے۔

Flow کی جانب سے آپ کی HTTP request بھیجنے کے بعد، یہ HTTP response code کے لیے زیادہ سے زیادہ 30 سیکنڈ تک انتظار کرتا ہے۔ اگر 30 سیکنڈ کے بعد Flow کو کوئی response موصول نہیں ہوتا ہے، تو یہ آپ کی ایپ کے ساتھ کنکشن بند کر دیتا ہے۔ بعد میں، یہ request دوبارہ بھیجنے کی کوشش کرتا ہے۔

فیلڈ

HTTP request بھیجیں ایکشن میں درج ذیل فیلڈ شامل ہیں۔

HTTP request بھیجیں ایکشن میں استعمال ہونے والی فیلڈ۔
فیلڈتفصیل
HTTP طریقہ کاربھیجی جانے والی HTTP درخواست کا طریقہ کار۔ HTTP request بھیجیں ایکشن درج ذیل طریقہ کار کو سپورٹ کرتا ہے:
  • Get - سرور سے معلومات کی درخواست بھیجتا ہے۔
  • Delete - سرور سے کسی ریسورس (resource) کو ہٹاتا ہے۔
  • Head - سرور کے HTTP ریسپانس ہیڈر بازیافت کرتا ہے۔
  • Options - سرور کے ذریعے سپورٹ کردہ آپشن اور فیچر کو بازیافت کرتا ہے۔
  • Patch - سرور پر موجود ریسورس کو جزوی طور پر اپ ڈیٹ کرتا ہے۔
  • Put - سرور پر موجود ریسورس کو اپ ڈیٹ کرتا ہے۔
  • Post - سرور پر نیا ریسورس بناتا یا اسے تبدیل کرتا ہے۔
URLاس سرور کا URL جہاں HTTP درخواست بھیجی جاتی ہے۔
ہیڈرHTTP درخواست کے لیے کی (key) اور ویلیو کا جوڑا۔ ایک سے زیادہ کی-ویلیو جوڑے درج کیے جا سکتے ہیں۔
باڈیسرور کو بھیجا جانے والا مواد۔
کلائنٹ کی خرابی پر (4XX ریسپانس)جب کوئی ریسپانس کوڈ موصول ہو جو کلائنٹ کی خرابی کی نشاندہی کرے، تو Flow یہ کرے گا:
  • Retry - 24 گھنٹے تک دوبارہ کوشش کرتا رہے گا جب تک کہ کوئی مختلف ریسپانس کوڈ موصول نہ ہو جائے یا ٹائم آؤٹ نہ ہو جائے۔
  • Fail - ورک فلو رن کو ناکام کر دے گا۔
  • Ignore - خرابی کو نظر انداز کر کے ورک فلو رن کو جاری رکھے گا۔
سرور کی خرابی پر (5XX یا 429 ریسپانس)جب کوئی ریسپانس کوڈ موصول ہو جو سرور کی خرابی کی نشاندہی کرے، تو Flow یہ کرے گا:
  • Retry - 24 گھنٹے تک دوبارہ کوشش کرتا رہے گا جب تک کہ کوئی مختلف ریسپانس کوڈ موصول نہ ہو جائے یا ٹائم آؤٹ نہ ہو جائے۔
  • Fail - ورک فلو رن کو ناکام کر دے گا۔
  • Ignore - خرابی کو نظر انداز کر کے ورک فلو رن کو جاری رکھے گا۔

واپس کیا گیا ڈیٹا

اس ایکشن کے بعد آنے والے مراحل میں واپس کیے گئے ڈیٹا تک رسائی کے لیے sendHttpRequest نامی ویری ایبل استعمال کریں، جس میں HTTP ریسپانس کی تمام تفصیلات شامل ہوتی ہیں۔ اختیاری طور پر، جواب کی body کو پارس (parse) کرنے کے لیے Run code ایکشن کا استعمال کریں تاکہ اسے بعد کے ورک فلو مراحل میں استعمال کیا جا سکے، جیسا کہ ذیل کی مثال میں دکھایا گیا ہے۔

اگر ایک ہی ورک فلو میں Send HTTP request ایکشن ایک سے زیادہ بار استعمال کیا گیا ہو، تو ویری ایبل کے نام کے ساتھ ایک نمبر کا اضافہ کر دیا جاتا ہے۔ مثال کے طور پر، کسی ایسے ورک فلو میں جو دو بار Send HTTP request ایکشن استعمال کرتا ہے، واپس کیے گئے ڈیٹا کے پہلے ویری ایبل کا نام sendHttpRequest اور دوسرے ویری ایبل کا نام sendHttpRequest1 ہوگا۔ اس نام کو حسب ضرورت تبدیل نہیں کیا جا سکتا۔

ریسپانس کوڈ

درج ذیل جدول میں بتایا گیا ہے کہ ریسپانس موصول ہونے کے بعد Flow HTTP ریسپانس کوڈ کو کس طرح پروسیس کرتا ہے۔

Flow کس طرح HTTP ریسپانس کوڈ کو پروسیس کرتا ہے۔
HTTP ریسپانس کوڈFlow ریسپانس کوڈ کو کس طرح پروسیس کرتا ہے
2XX یا 3XX کامیابیFlow اس HTTP درخواست کو کامیاب قرار دیتا ہے اور ورک فلو میں بعد کے ایکشن انجام دیتا ہے۔
4XX ایرر،
5XX اور 429 ایرر
ایکشن کی کنفیگریشن کے لحاظ سے، Flow یہ کرے گا:
  • Retry - 24 گھنٹے تک دوبارہ کوشش کرتا رہے گا جب تک کہ کوئی مختلف ریسپانس کوڈ موصول نہ ہو جائے یا ٹائم آؤٹ نہ ہو جائے۔
  • Fail - ورک فلو رن کو ناکام کر دے گا۔
  • Ignore - خرابی کو نظر انداز کر کے ورک فلو رن کو جاری رکھے گا۔
دیگر ریسپانس کوڈاگر ریسپانس کوئی ایسا کوڈ واپس کرتا ہے جو اس ٹیبل میں بیان نہیں کیا گیا ہے یا ایکشن کو دوبارہ آزمانے پر یہ ٹائم آؤٹ ہو جاتا ہے، تو Flow اس HTTP درخواست کو ناکام قرار دیتا ہے، ورک فلو رن کو ناکام بنا دیتا ہے، اور بعد کے ورک فلو ایکشن نہیں لیتا۔

سیکرٹ

سیکرٹ کو حساس معلومات محفوظ طریقے سے اسٹور کرنے کے لیے استعمال کیا جاتا ہے تاکہ انہیں Send HTTP request ایکشن میں استعمال کیا جا سکے، جیسے کہ ایکسیس ٹوکن یا پاس ورڈ۔ سیکرٹ کو Flow > Settings صفحے سے بنایا اور مینیج کیا جاتا ہے۔ ایک سیکرٹ میں ہینڈل (handle)، ویلیو، اور تفصیل شامل ہوتی ہے۔ URL، ہیڈر ویلیو، یا باڈی فیلڈز کو کنفیگر کرتے وقت سیکرٹ کا حوالہ Liquid ویری ایبل (جیسے {{secrets.handle}}) یا Add secret آپشن کے ذریعے دیں۔ سیکرٹ کی ویلیو Flow انٹرفیس میں کبھی نظر نہیں آتیں اور انہیں ورک فلو رن لاگ سے ہٹا دیا جاتا ہے۔

ٹریگر

کسی بھی ورک فلو میں Send HTTP request ایکشن کا استعمال کیا جا سکتا ہے۔

مثالیں

مثال 1: کسی بیرونی سروس کو HTTP درخواست بھیجیں

اس مثال میں، کسی بیرونی سروس کو HTTP درخواست بھیجنے کے لیے Flow کا استعمال کریں۔

شروع کرنے سے پہلے، ایک ایسی ویب سروس کنفیگر کریں جو HTTP درخواستیں وصول کرے اور ٹیسٹنگ کے لیے ان درخواستوں کا ڈیٹا اسٹور کرے، جیسا کہ Request Catcher۔ یاد رکھیں کہ حساس ڈیٹا (جیسے پاس ورڈ یا API کی) کو کسی تھرڈ پارٹی سروس میں بھیجتے وقت احتیاط برتیں۔

مراحل:

  1. Product status updated ٹریگر کا انتخاب کریں، جو آپ کو کسی پروڈکٹ کا اسٹیٹس تبدیل کر کے اس ورک فلو کو ٹیسٹ کرنے کی سہولت دیتا ہے۔
  2. ایک Send HTTP Request ایکشن کو اپنے ورک فلو میں شامل کریں اور اسے ٹریگر سے کنیکٹ کریں۔ اس کے بعد کنفیگریشن پینل کھولنے کے لیے متعلقہ Send HTTP Request والے مرحلے پر کلک کریں۔
    • HTTP Method فیلڈ میں، POST درج کریں۔
    • URL فیلڈ میں، ٹیسٹ کرنے کے لیے URL درج کریں، جیسے کہ https://yourFlowTest.requestcatcher.com/test۔
    • Headers سیکشن میں، ایک ہیڈر درج کریں جس کی Key میں Content-Type اور Value میں text/plain ہو۔
    • Body سیکشن میں، ٹریگر سے پروڈکٹ کا ٹائٹل اور اپ ڈیٹ شدہ اسٹیٹس بھیجنے کے لیے {{product.title}} اور {{product.status}} درج کریں۔
  3. ورک فلو کو ایکٹیویٹ کریں۔
  4. اسے کسی پروڈکٹ کا اسٹیٹس تبدیل کر کے ٹیسٹ کریں، مثلاً Draft سے Active میں تبدیل کر کے۔
  5. بیرونی ٹیسٹنگ سروس میں نتائج کا مشاہدہ کریں، جیسا کہ اس مثال میں https://yourFlowTest.requestcatcher.com/ دکھایا گیا ہے۔

مثال 2: HTTP ریسپانس کو پارس کرنے کے لیے Run code کا استعمال کریں

اس مثال میں، کسی بیرونی سروس کو HTTP درخواست بھیجنے کے لیے Flow کا اور HTTP ریسپانس کی body کو پارس کرنے کے لیے Run code ایکشن کا استعمال کریں تاکہ اسے بعد کے ورک فلو مراحل میں استعمال کیا جا سکے۔

شروع کرنے سے پہلے، کوئی ایسی ویب سروس منتخب کریں جو HTTP request وصول کرے اور ڈیٹا واپس کرے، جیسے کہ Postman Echo۔ حساس ڈیٹا (جیسے پاس ورڈ یا API key) کسی تھرڈ پارٹی سروس کو بھیجتے وقت احتیاط برتنا یاد رکھیں۔

مراحل:

  1. Product status updated ٹریگر کا انتخاب کریں، جو آپ کو کسی پروڈکٹ کا اسٹیٹس تبدیل کر کے اس ورک فلو کو ٹیسٹ کرنے کی سہولت دیتا ہے۔

  2. اپنے ورک فلو میں Send HTTP Request ایکشن شامل کریں اور اسے ٹریگر کے ساتھ کنیکٹ کریں۔ پھر Send HTTP Request کے مرحلے پر کلک کر کے کنفیگریشن پینل کھولیں۔

    • HTTP Method فیلڈ میں، POST درج کریں۔

    • URL فیلڈ میں، ٹیسٹ کرنے کے لیے URL درج کریں، جیسے کہ https://postman-echo.com/post۔

    • Headers سیکشن میں، ایسا ہیڈر درج کریں جس کی Key Content-Type اور Value application/json ہو۔

    • Body سیکشن میں، ورک فلو کو واپس لوٹانے کے لیے مثالی JSON درج کریں، جیسے کہ:

      {
          "productTitle": "{{product.title}}",
          "productStatus": "{{product.status}}"
      }
  3. اپنے ورک فلو میں Run code ایکشن شامل کریں اور اسے Send HTTP request ایکشن کے ساتھ کنیکٹ کریں۔ پھر Run code کے مرحلے پر کلک کر کے کنفیگریشن پینل کھولیں۔

    • Define inputs فیلڈ میں، sendHTTPrequest آبجیکٹ کی طرف سے لوٹائی گئی body کو شامل کریں، جیسے کہ:

      query{
        sendHttpRequest {
          body
        }
      }
    • Define outputs فیلڈ میں، جو آؤٹ پٹ سکیما میں بیان کیا گیا ہے، جیسے کہ:

      type Output {
        productTitle: String!
        productStatus: String!
      }
    • Write code فیلڈ میں، 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. اپنے ورک فلو میں Log output ایکشن شامل کریں اور اسے Run code ایکشن کے ساتھ کنیکٹ کریں۔ پھر Run code کے مرحلے پر کلک کر کے کنفیگریشن پینل کھولیں۔

    • Output فیلڈ میں، Run code کے مرحلے کی طرف سے لوٹایا گیا ویری ایبل شامل کریں، جیسے کہ:

      Title from HTTP response: {{runCode.productTitle}}
      Status from HTTP response: {{runCode.productStatus}}
  5. ورک فلو کو ایکٹیویٹ کریں۔

  6. اسے کسی پروڈکٹ کا اسٹیٹس تبدیل کر کے ٹیسٹ کریں، مثلاً Draft سے Active میں تبدیل کر کے۔

  7. Flow / Recent runs کے پیج سے نتیجے میں آنے والے رن کا مشاہدہ کریں اور نوٹ کریں کہ Log output کے مرحلے کی ویلیو Send HTTP request کے آؤٹ پٹ سے لوٹائی گئی ویلیو سے مماثل ہے۔

ٹیمپلیٹ

آنے والے آرڈر کے بارے میں اپنے فلفلمنٹ فراہم کنندہ کو مطلع کریں

Order Tagger میں آرڈر کو "Warehouse" کا ٹیگ لگنے پر اپنے فلفلمنٹ فراہم کنندہ کو ایک HTTP request بھیجیں۔ ٹیمپلیٹ دیکھیں

نئے آرڈر Airtable پر بھیجیں

آرڈر تخلیق ہونے پر آرڈر کو Airtable پر بھیجیں۔ ٹیمپلیٹ دیکھیں

تمام موجودہ اور نئی پروڈکٹ کو Airtable پر بھیجیں

ہر 10 منٹ بعد، ایسی پروڈکٹ تلاش کریں جو Airtable پر نہیں بھیجی گئی ہیں (ٹیگ کے ذریعے) اور انہیں Airtable پر بھیجیں۔ ٹیمپلیٹ دیکھیں

Airtable میں اسٹور کردہ پروڈکٹ ڈیٹا سے پروڈکٹ کو بیچ کے حساب سے اپ ڈیٹ کریں

Airtable میں اسٹور کردہ پروڈکٹ ڈیٹا سے پروڈکٹ کو بیچ کے حساب سے اپ ڈیٹ کریں۔ ٹیمپلیٹ دیکھیں

SendGrid کا استعمال کرتے ہوئے کسٹمر کو میعاد ختم ہونے والے گفٹ کارڈ کے بارے میں مطلع کریں

ہر روز، ایسے تمام گفٹ کارڈ حاصل کریں جن کی میعاد 7 دن میں ختم ہو رہی ہے اور SendGrid کا استعمال کر کے کسٹمر کو ای میل بھیجیں۔ ٹیمپلیٹ دیکھیں

جب کسٹمر کسی کسٹم آئٹم کا آرڈر دیں تو SendGrid کا استعمال کرتے ہوئے ای میل بھیجیں

جب کوئی کسٹمر کسی کسٹم آئٹم کا آرڈر دے تو SendGrid کا استعمال کر کے ایک ٹرانزیکشنل ای میل بھیجیں۔ ٹیمپلیٹ دیکھیں