Send HTTP request
Send HTTP request অ্যাকশন আপনার ওয়ার্কফ্লোকে একটি ওয়েব সার্ভার বা URL-এর সাথে কানেক্ট করে এবং HTTP request পাঠায়।
Flow আপনার HTTP request পাঠানোর পর, এটি HTTP response code-এর জন্য সর্বাধিক 30 সেকেন্ড অপেক্ষা করে। 30 সেকেন্ডের মধ্যে Flow কোনো রেসপন্স না পেলে, এটি আপনার অ্যাপের কানেকশন বন্ধ করে দেয়। পরে এটি আবার request পাঠানোর চেষ্টা করে।
এই পেজে যা যা আছে
ফিল্ড
Send HTTP request অ্যাকশনে নিচের ফিল্ডগুলো রয়েছে।
| ফিল্ড | বিবরণ |
|---|---|
| HTTP মেথড | যে HTTP request মেথড পাঠাতে হবে। Send HTTP request অ্যাকশনটি নিচের মেথডগুলো সমর্থন করে:
|
| URL | যে সার্ভারে HTTP request পাঠানো হয় তার URL। |
| হেডার | HTTP request-এর জন্য key এবং value পেয়ার। একাধিক key-value পেয়ার এন্টার করা যেতে পারে। |
| বডি | সার্ভারে যে কনটেন্ট পাঠানো হবে। |
| ক্লায়েন্ট এররের ক্ষেত্রে (4XX রেসপন্স) | যখন কোনো রেসপন্স কোড পাওয়া যায় যা ক্লায়েন্ট এরর নির্দেশ করে, তখন Flow যা করবে:
|
| সার্ভার এররের ক্ষেত্রে (5XX বা 429 রেসপন্স) | যখন কোনো রেসপন্স কোড পাওয়া যায় যা সার্ভার এরর নির্দেশ করে, তখন Flow যা করবে:
|
রিটার্ন করা ডেটা
এই অ্যাকশনের পরবর্তী ধাপগুলোতে রিটার্ন করা ডেটা অ্যাক্সেস করতে sendHttpRequest নামের ভ্যারিয়েবলটি ব্যবহার করুন, যার মধ্যে HTTP রেসপন্সের সব বিবরণ অন্তর্ভুক্ত থাকে। এছাড়া, পরবর্তী ওয়ার্কফ্লো ধাপে ব্যবহারের জন্য রেসপন্সের body পার্স করতে আপনি চাইলে Run code অ্যাকশনটি ব্যবহার করতে পারেন, যেমন নিচের উদাহরণে দেখানো হয়েছে।
একটি ওয়ার্কফ্লোতে Send HTTP request অ্যাকশনটি একাধিকবার ব্যবহার করা হলে, ভ্যারিয়েবলের নামের সাথে একটি নম্বর যোগ করা হয়। উদাহরণস্বরূপ, যে ওয়ার্কফ্লোতে Send HTTP request অ্যাকশনটি দুইবার ব্যবহার করা হয়, সেটিতে রিটার্ন করা ডেটার জন্য প্রথম ভ্যারিয়েবলটি হলো sendHttpRequest এবং দ্বিতীয় ভ্যারিয়েবলটি হলো sendHttpRequest1। এই নাম কাস্টমাইজ করা যায় না।
রেসপন্স কোড
রেসপন্স পাওয়ার পর Flow কীভাবে HTTP response code-কে প্রক্রিয়া করে, তা নিচের সারণিতে বর্ণনা করা হয়েছে।
| HTTP response code | Flow কীভাবে রেসপন্স কোড প্রক্রিয়া করে |
|---|---|
| 2XX বা 3XX সাফল্য | Flow HTTP রিকোয়েস্টটিকে সফল হিসেবে চিহ্নিত করে এবং ওয়ার্কফ্লো-তে পরবর্তী অ্যাকশনগুলো সম্পাদন করে। |
| 4XX ত্রুটি, 5XX এবং 429 ত্রুটি | অ্যাকশনটি কীভাবে কনফিগার করা হয়েছে তার উপর ভিত্তি করে, Flow যা করবে:
|
| অন্যান্য রেসপন্স কোড | যদি রেসপন্স এমন কোনো কোড ফেরত দেয় যা এই সারণিতে বর্ণনা করা হয়নি বা অ্যাকশনগুলো আবার চেষ্টা করার সময় টাইম আউট হয়ে যায়, তাহলে Flow HTTP রিকোয়েস্টটিকে ব্যর্থ হিসেবে চিহ্নিত করে, ওয়ার্কফ্লো রান ব্যর্থ করে এবং পরবর্তী ওয়ার্কফ্লো অ্যাকশনগুলো গ্রহণ করে না। |
সিক্রেট
Send HTTP request অ্যাকশনে ব্যবহার করার জন্য সংবেদনশীল তথ্য নিরাপদে স্টোর করতে সিক্রেট ব্যবহার করা হয়, যেমন- অ্যাক্সেস টোকেন বা পাসওয়ার্ড। Flow > সেটিংস পেজ থেকে সিক্রেট তৈরি এবং পরিচালনা করা হয়। একটি সিক্রেটের মধ্যে একটি হ্যান্ডেল, মান এবং বিবরণ থাকে। URL, Header-এর মান বা Body ফিল্ড কনফিগার করার সময় সিক্রেটটিকে একটি Liquid ভেরিয়েবল হিসেবে (যেমন {{secrets.handle}}) বা সিক্রেট যোগ করুন বিকল্প থেকে রেফারেন্স হিসেবে উল্লেখ করুন। সিক্রেটের মানগুলো কখনোই Flow ইন্টারফেসে দেখা যায় না এবং ওয়ার্কফ্লো রানের লগ থেকে এগুলো সরিয়ে ফেলা হয়।
ট্রিগার
যেকোনো ওয়ার্কফ্লো-তে Send HTTP request অ্যাকশনটি ব্যবহার করা যেতে পারে।
উদাহরণ
উদাহরণ 1: কোনো এক্সটার্নাল সার্ভিসে একটি HTTP রিকোয়েস্ট পাঠান
এই উদাহরণে, কোনো এক্সটার্নাল সার্ভিসে একটি HTTP রিকোয়েস্ট পাঠাতে Flow ব্যবহার করুন।
শুরু করার আগে, এমন একটি ওয়েব সার্ভিস কনফিগার করুন যা HTTP রিকোয়েস্ট গ্রহণ করে এবং পরীক্ষার জন্য সেই রিকোয়েস্টগুলোর ডেটা স্টোর করে, যেমন Request Catcher। কোনো তৃতীয়-পক্ষের সার্ভিসে সংবেদনশীল ডেটা (যেমন পাসওয়ার্ড বা API কি) পাঠানোর সময় সতর্কতা অবলম্বন করার কথা মনে রাখবেন।
ধাপগুলো:
- Product status updated ট্রিগারটি বেছে নিন, যা আপনাকে কোনো পণ্যের স্ট্যাটাস পরিবর্তন করে এই ওয়ার্কফ্লো পরীক্ষা করার সুবিধা দেয়।
- আপনার ওয়ার্কফ্লো-তে একটি 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}}লিখুন।
- HTTP Method ফিল্ডে
- ওয়ার্কফ্লোটি চালু করুন।
- কোনো পণ্যের স্ট্যাটাস পরিবর্তন করে এটি পরীক্ষা করুন, যেমন ড্রাফট থেকে অ্যাক্টিভ-এ পরিবর্তন করুন।
- এক্সটার্নাল টেস্টিং সার্ভিসে ফলাফল পর্যবেক্ষণ করুন, যেমন এই উদাহরণের
https://yourFlowTest.requestcatcher.com/।
উদাহরণ 2: HTTP রেসপন্স পার্স করতে Run code ব্যবহার করুন
এই উদাহরণে, কোনো এক্সটার্নাল সার্ভিসে একটি HTTP রিকোয়েস্ট পাঠাতে Flow এবং ওয়ার্কফ্লো-এর পরবর্তী ধাপে ব্যবহার করার জন্য HTTP রেসপন্সের body পার্স করতে একটি Run code অ্যাকশন ব্যবহার করুন।
শুরু করার আগে, এমন একটি ওয়েব সার্ভিস বেছে নিন যা HTTP রিকোয়েস্ট গ্রহণ করে এবং ডেটা ফেরত দেয়, যেমন Postman Echo। কোনো তৃতীয়-পক্ষের সার্ভিসে সংবেদনশীল ডেটা (যেমন পাসওয়ার্ড বা API কি) পাঠানোর সময় সতর্কতা অবলম্বন করার কথা মনে রাখবেন।
ধাপগুলো:
Product status updated ট্রিগারটি বেছে নিন, যা আপনাকে কোনো পণ্যের স্ট্যাটাস পরিবর্তন করে এই ওয়ার্কফ্লো পরীক্ষা করার সুবিধা দেয়।
আপনার ওয়ার্কফ্লো-তে একটি 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}}" }
আপনার ওয়ার্কফ্লো-তে একটি 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 } }
আপনার ওয়ার্কফ্লো-তে একটি Log output অ্যাকশন যোগ করুন এবং একে Run code অ্যাকশনের সাথে সংযুক্ত করুন। তারপর Run code ধাপে ক্লিক করে কনফিগারেশন প্যানেলটি খুলুন।
Output ফিল্ডে, Run code ধাপ দ্বারা ফেরত পাঠানো ভেরিয়েবলগুলো অন্তর্ভুক্ত করুন, যেমন:
Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
ওয়ার্কফ্লোটি চালু করুন।
কোনো পণ্যের স্ট্যাটাস পরিবর্তন করে এটি পরীক্ষা করুন, যেমন ড্রাফট থেকে অ্যাক্টিভ-এ পরিবর্তন করুন।
Flow / Recent runs পেজ থেকে ফলাফলের রান পর্যবেক্ষণ করুন এবং লক্ষ্য করুন যে Log output ধাপের মানগুলো Send HTTP request আউটপুট থেকে ফেরত আসা মানের সাথে মেলে কিনা।
টেমপ্লেট
আসন্ন অর্ডারের বিষয়ে আপনার ফুলফিলমেন্ট প্রদানকারীকে অবহিত করুন
Order Tagger-এ অর্ডারগুলোকে "Warehouse" ট্যাগ করা হলে আপনার ফুলফিলমেন্ট প্রদানকারীকে একটি HTTP রিকোয়েস্ট পাঠান। টেমপ্লেট দেখুন
Airtable-এ নতুন অর্ডার পাঠান
নতুন কোনো অর্ডার তৈরি হলে Airtable-এ অর্ডারগুলো পাঠান। টেমপ্লেট দেখুন
বিদ্যমান এবং নতুন সব পণ্য Airtable-এ পাঠান
প্রতি 10 মিনিট পর পর, যে পণ্যগুলো (ট্যাগ অনুযায়ী) Airtable-এ পাঠানো হয়নি তা খুঁজে বের করুন এবং সেগুলো Airtable-এ পাঠান। টেমপ্লেট দেখুন
Airtable-এ স্টোর করা পণ্যের ডেটা থেকে ব্যাচ অনুযায়ী পণ্যগুলো আপডেট করুন
Airtable-এ স্টোর করা পণ্যের ডেটা থেকে ব্যাচ অনুযায়ী পণ্যগুলো আপডেট করুন। টেমপ্লেট দেখুন
SendGrid ব্যবহার করে মেয়াদ শেষ হতে চলা গিফট কার্ড সম্পর্কে গ্রাহকদের অবহিত করুন
প্রতিদিন, আগামী 7 দিনের মধ্যে মেয়াদ শেষ হবে এমন সব গিফট কার্ডের তালিকা পান এবং SendGrid ব্যবহার করে গ্রাহকদের ইমেইল পাঠান। টেমপ্লেট দেখুন
কাস্টম আইটেমের জন্য গ্রাহক কোনও অর্ডার করলে SendGrid ব্যবহার করে ইমেইল পাঠান
কাস্টম আইটেমের জন্য গ্রাহক কোনও অর্ডার করলে SendGrid ব্যবহার করে একটি ট্রানজ্যাকশনাল ইমেইল পাঠান। টেমপ্লেট দেখুন