Insomnia REST, GraphQL এবং WebSocket API পরীক্ষার জন্য একটি ওপেন-সোর্স ডেস্কটপ HTTP ক্লায়েন্ট। টুলটি ন্যূনতম ইন্টারফেস, বিল্ট-ইন অনুরোধ সম্পাদক এবং রেজিস্ট্রেশনের প্রয়োজন ছাড়াই এনভায়রনমেন্ট ভেরিয়েবল সাপোর্টের জন্য আলাদা। Insomnia Documentation (2026) অনুসারে, ক্লায়েন্টটি 20+ প্রোগ্রামিং ভাষায় কোড অটো-জেনারেশন সমর্থন করে।
মূল বিষয়
Insomnia HTTP অনুরোধ পাঠানো এবং API ডিবাগ করার জন্য একটি ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশন (Electron)। এটি 2016 সাল থেকে Kong কোম্পানি দ্বারা গতি এবং গোপনীয়তার উপর জোর দিয়ে Postman-এর বিকল্প হিসেবে তৈরি হচ্ছে: ডেটা স্থানীয়ভাবে সংরক্ষিত হয়, ক্লাউড সিঙ্ক্রোনাইজেশন ঐচ্ছিক এবং রেজিস্ট্রেশন প্রয়োজন।
মূল উইন্ডোটি তিনটি কলামে বিভক্ত: বামে অনুরোধ ট্রি (Workspace), কেন্দ্রে Params, Headers, Body ট্যাবসহ অনুরোধ সম্পাদক, ডানে Pretty, Raw এবং Preview মোডসহ প্রতিক্রিয়া প্যানেল। ডার্ক থিম ডিফল্টরূপে সক্রিয়, CSS ভেরিয়েবলের মাধ্যমে কাস্টম থিম সমর্থিত।
Insomnia অনুরোধটিকে 20+ ভাষায় এবং ফ্রেমওয়ার্কে কোডে এক্সপোর্ট সমর্থন করে: cURL, HTTPie, Python Requests, JavaScript Fetch/Axios, Kotlin OkHttp, Swift URLSession, Java Unirest, Ruby Net::HTTP এবং অন্যান্য। জেনারেটর হেডার, অনুরোধের বডি এবং অথেনটিকেশনের ধরন বিবেচনা করে, যা অ্যাপ্লিকেশন কোডে API একীকরণ দ্রুত করে।
Insomnia এবং Postman একই কাজ সমাধান করে তবে ভিন্ন অগ্রাধিকার নিয়ে। Insomnia হালকা (~80 MB বনাম ~300 MB), দ্রুত চালু হয় এবং রেজিস্ট্রেশন চাপিয়ে না দিয়ে সম্পূর্ণ অফলাইনে কাজ করে। Postman মনিটরিং, মক-সার্ভার এবং টিম ওয়ার্কস্পেসসহ আরও পরিণত ইকোসিস্টেম অফার করে।
| মানদণ্ড | Insomnia | Postman |
|---|---|---|
| অ্যাপের আকার | ~80 MB | ~300 MB |
| অফলাইন মোড | সম্পূর্ণ | সীমিত |
| GraphQL | বিল্ট-ইন সম্পাদক | বিটা সংস্করণ |
| CLI | Inso CLI | Newman |
| প্লাগইন | Plugin Hub | এক্সটেনশন |
ব্যক্তিগত ডেভেলপমেন্ট এবং এন্ডপয়েন্টের দ্রুত পরীক্ষার জন্য Insomnia তার হালকাতা এবং রেজিস্ট্রেশনের অনুপস্থিতির কারণে বেশি সুবিধাজনক। ভাগ করা কালেকশন, CI/CD একীকরণ এবং প্রোডাকশন API মনিটরিংসহ টিম কাজের জন্য Postman শিল্প মান হিসেবে রয়ে গেছে।
Insomnia-তে ওয়ার্কস্পেস ফোল্ডারে বিভক্ত অনুরোধ ট্রি ধারণ করে। প্রতিটি অনুরোধ HTTP, GraphQL, WebSocket বা gRPC ধরনের হতে পারে। ড্র্যাগ-এন্ড-ড্রপ, ডুপ্লিকেশন এবং রঙের লেবেল দিয়ে অনুরোধ গোষ্ঠীবদ্ধকরণ সমর্থিত। ওয়ার্কস্পেস কনফিগারেশন ফাইল JSON ফরম্যাটে সংরক্ষিত হয়।
Insomnia নেস্টেড এনভায়রনমেন্ট (Sub Environments) সমর্থন করে যা প্যারেন্টের ভেরিয়েবল ইনহেরিট করে। এটি গ্লোবাল এনভায়রনমেন্টে বেস URL নির্ধারণ এবং বিভিন্ন পরিবেশের জন্য শুধুমাত্র ভিন্ন প্যারামিটার পুনঃসংজ্ঞায়িত করার অনুমতি দেয়। ভেরিয়েবল সিনট্যাক্স {`{`}_variable${`}`} এর মাধ্যমে প্রতিস্থাপিত হয়।
// Insomnia এনভায়রনমেন্ট কাঠামোর উদাহরণ
{
"base_url": "https://api.example.com",
"timeout": 5000,
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
}
}
Insomnia API ক্লায়েন্টগুলির মধ্যে সেরা GraphQL সম্পাদকগুলির একটি প্রদান করে। GraphQL Query ট্যাব লোড করা স্কিমার উপর ভিত্তি করে ফিল্ড অটোকমপ্লিটসহ অনুরোধ লেখার অনুমতি দেয়। ডানে টাইপ, ফিল্ড এবং আর্গুমেন্ট সম্পর্কে ডকুমেন্টেশন রিয়েল টাইমে প্রদর্শিত হয়।
স্কিমা এন্ডপয়েন্টে GraphQL Introspection অনুরোধের মাধ্যমে লোড হয়। Insomnia স্কিমাটি স্থানীয়ভাবে ক্যাশ করে এবং পরিবর্তন হলে স্বয়ংক্রিয়ভাবে আপডেট করে। লোডিংয়ের পরে অটোকমপ্লিট (Ctrl+Space), অনুরোধ ভ্যালিডেশন এবং পাঠানোর আগে সম্ভাব্য ত্রুটির প্রিভিউ উপলব্ধ হয়।
# Insomnia-তে ভেরিয়েবলসহ GraphQL কুয়েরি
query GetUser($id: ID!) {
user(id: $id) {
name
email
posts {
title
createdAt
}
}
}
Insomnia Plugin Hub-এ 100টিরও বেশি প্লাগইন রয়েছে যা ক্লায়েন্টের কার্যকারিতা প্রসারিত করে। প্লাগইনগুলি Preferences → Plugins মেনুর মাধ্যমে বা npm-এর মাধ্যমে ম্যানুয়ালি ইনস্টল করা হয়। জনপ্রিয় বিভাগগুলির মধ্যে রয়েছে পরীক্ষার ডেটা জেনারেশন, বিভিন্ন ফরম্যাটে এক্সপোর্ট এবং কাস্টম প্রতিক্রিয়া ভ্যালিডেটর। প্রতিটি প্লাগইন পাবলিক ডেভেলপার হাবে প্রকাশের আগে বাধ্যতামূলক মডারেশনের মধ্য দিয়ে যায়।
প্লাগইনগুলি JavaScript এ লেখা হয় এবং টেমপ্লেটিং API (response.*, request.*, environment.*) এর মাধ্যমে Insomnia-এর সাথে ইন্টারঅ্যাক্ট করে। প্লাগইন ডেভেলপ করতে Node.js-এর মৌলিক জ্ঞান এবং insomnia-plugin ট্যাগসহ npm প্যাকেজের মাধ্যমে প্রকাশ প্রয়োজন।
Inso CLI টার্মিনাল থেকে অনুরোধ এবং পরীক্ষা চালানোর জন্য Insomnia-তে নির্মিত একটি কনসোল ইউটিলিটি। Inso পৃথক অনুরোধ বা পুরো কালেকশন চালায়, ফলাফল JSON-এ এক্সপোর্ট করে এবং CI/CD পাইপলাইনে একীভূত হতে পারে। inso run collection কমান্ড কালেকশনের সমস্ত অনুরোধ ক্রমানুসারে সম্পাদন করে।
Inso CLI Docker কন্টেইনার এবং হেডলেস মোডে কাজ করে, যা GitHub Actions এবং GitLab CI-তে ব্যবহারের অনুমতি দেয়। লঞ্চ কনফিগারেশন YAML ফাইলে এক্সপোর্ট করা কালেকশন এবং এনভায়রনমেন্টের পথ উল্লেখ করে বর্ণিত হয়। JavaScript স্ক্রিপ্টের মাধ্যমে স্ট্যাটাস কোড এবং প্রতিক্রিয়া বডিতে অ্যাসারশন সমর্থিত।
# Inso CLI সহ GitHub Actions ওয়ার্কফ্লো
- name: Run API tests
run: npx insomnia-inso run collection
--collection "Auth API"
--env "Staging"
--reporter junit
--output reports/api-results.xml
Insomnia Git-এর মাধ্যমে কালেকশন সিঙ্ক্রোনাইজেশন সমর্থন করে। কালেকশন ফাইল JSON ফরম্যাটে সংরক্ষিত হয় এবং প্রজেক্ট রিপোজিটরিতে যোগ করা যেতে পারে। Insomnia পরিবর্তন দেখার, কমিট তৈরি করার এবং ইন্টারফেস থেকে সরাসরি মার্জ দ্বন্দ্ব সমাধানের জন্য বিল্ট-ইন Git ক্লায়েন্ট প্রদান করে।
Git সংযোগ করতে রিপোজিটরিসহ একটি স্থানীয় ফোল্ডার তৈরি করুন এবং Insomnia সেটিংসে এটি রুট ডিরেক্টরি হিসেবে উল্লেখ করুন। অ্যাপ্লিকেশন কালেকশন ফাইলের পরিবর্তন স্বয়ংক্রিয়ভাবে ট্র্যাক করে এবং Version Control প্যানেলে প্রদর্শন করে। মানক অপারেশন সমর্থিত: commit, push, pull এবং সংস্করণের মধ্যে diff দেখা।
Git ছাড়া প্রজেক্টের জন্য Insomnia Insomnia Cloud-এর মাধ্যমে ক্লাউড সিঙ্ক্রোনাইজেশন অফার করে। বিনামূল্যের প্ল্যানে দলের 3 জন সদস্য এবং কালেকশনের স্বয়ংক্রিয় ব্যাকআপ অন্তর্ভুক্ত। পেইড প্ল্যান অ্যাক্সেস ম্যানেজমেন্ট, পরিবর্তন অডিট এবং অগ্রাধিকার সমর্থন যোগ করে।
| সিঙ্ক্রোনাইজেশন পদ্ধতি | বিনামূল্যে | অফলাইন | সংস্করণ নিয়ন্ত্রণ |
|---|---|---|---|
| Git (স্থানীয়) | হ্যাঁ | হ্যাঁ | সম্পূর্ণ (commit, diff, merge) |
| Insomnia Cloud | 3 জন ব্যবহারকারী পর্যন্ত | না | মৌলিক (পরিবর্তন ইতিহাস) |
| ফাইল এক্সপোর্ট | হ্যাঁ | হ্যাঁ | ম্যানুয়াল (সংস্করণ নিয়ন্ত্রণ সিস্টেমের মাধ্যমে) |
Insomnia-তে Design Mode OpenAPI 3.0 ফরম্যাটে API স্পেসিফিকেশন তৈরি করতে দেয়। মোডটি ভিজ্যুয়াল সম্পাদক হিসেবে কাজ করে: ম্যানুয়ালি YAML না লিখে এন্ডপয়েন্ট এবং ডেটা স্কিমা নির্ধারণ করুন। স্পেসিফিকেশন JSON বা YAML-এ এক্সপোর্ট করা যেতে পারে।
Insomnia OpenAPI স্পেসিফিকেশন ইমপোর্ট করে এবং প্রতিটি এন্ডপয়েন্টের জন্য অনুরোধের কালেকশন তৈরি করে। পাথ এবং স্কিমা প্রস্তুত HTTP অনুরোধে রূপান্তরিত হয়। ফাংশনটি মাইক্রোসার্ভিসের সাথে একীকরণে উপযোগী, যেখানে স্পেসিফিকেশন টিমের আলাদা রিপোজিটরিতে সংরক্ষিত থাকে।
প্রতিটি অনুরোধে একটি রঙিন লেবেল নির্ধারণ করা যেতে পারে: red, blue, green, orange, purple। ট্যাগ অনুসারে ফিল্টারিং ফোল্ডার কাঠামো থেকে স্বাধীনভাবে সার্চ বারের মাধ্যমে কাজ করে, যা শত শত এন্ডপয়েন্ট এবং অনেক মডিউলযুক্ত প্রজেক্টে নেভিগেশন সহজ করে।
Insomnia-তে Design Mode অ্যাপ্লিকেশনের ভিতরেই OpenAPI 3.0 ফরম্যাটে API স্পেসিফিকেশন তৈরি করতে দেয়। মোডটি ভিজ্যুয়াল সম্পাদক হিসেবে কাজ করে: ম্যানুয়ালি YAML না লিখে এন্ডপয়েন্ট, ডেটা স্কিমা এবং প্যারামিটার নির্ধারণ করুন। স্পেসিফিকেশন রিপোজিটরিতে প্রকাশের জন্য JSON বা YAML-এ এক্সপোর্ট করা যেতে পারে।
Insomnia বিদ্যমান OpenAPI স্পেসিফিকেশন ইমপোর্ট করে এবং প্রতিটি এন্ডপয়েন্টের জন্য স্বয়ংক্রিয়ভাবে অনুরোধের কালেকশন তৈরি করে। পাথ এবং স্কিমা সঠিক ডেটা টাইপসহ প্রস্তুত HTTP অনুরোধে রূপান্তরিত হয়। এই ফাংশনটি মাইক্রোসার্ভিসের সাথে একীকরণে উপযোগী, যেখানে স্পেসিফিকেশন একটি আলাদা ব্যাকএন্ড ডেভেলপমেন্ট টিম দ্বারা সংরক্ষিত এবং রক্ষণাবেক্ষণ করা হয়।
বড় সংখ্যক অনুরোধ সংগঠিত করতে Insomnia ট্যাগিং সমর্থন করে — প্রতিটি অনুরোধে একটি রঙিন লেবেল নির্ধারণ করা যেতে পারে: red, blue, green, orange, purple। ট্যাগ অনুসারে ফিল্টারিং ফোল্ডার কাঠামো থেকে স্বাধীনভাবে সার্চ বারের মাধ্যমে কাজ করে, যা শত শত এন্ডপয়েন্ট এবং অনেক কার্যকরী API মডিউলযুক্ত প্রজেক্টে নেভিগেশন সহজ করে।
সচরাচর জিজ্ঞাসিত প্রশ্ন
না, রেজিস্ট্রেশন বাধ্যতামূলক নয়। Insomnia সম্পূর্ণ অফলাইনে কাজ করে। ক্লাউড সিঙ্ক্রোনাইজেশন টিম কাজের জন্য একটি বিকল্প হিসেবে উপলব্ধ, তবে সমস্ত ডেটা ফোল্ডার ~/.config/Insomnia/-এ JSON ফাইলে স্থানীয়ভাবে সংরক্ষিত থাকে।
Postman থেকে কালেকশনটি JSON ফরম্যাটে (Collection v2.1) এক্সপোর্ট করুন। Insomnia-তে Import/Export → Import Data → From File নির্বাচন করুন। Insomnia অনুরোধ, হেডার এবং এনভায়রনমেন্ট ভেরিয়েবল সংরক্ষণ করে কালেকশনটি স্বয়ংক্রিয়ভাবে রূপান্তর করে।
হ্যাঁ, 2022 সংস্করণ থেকে। Insomnia WebSocket এবং Socket.IO প্রোটোকল সমর্থন করে। WebSocket ধরনের একটি নতুন অনুরোধ তৈরি করুন, URL (ws:// বা wss://) উল্লেখ করুন এবং চ্যাট ইন্টারফেসের মাধ্যমে বার্তা পাঠান।
Inso CLI কনসোল থেকে কালেকশন চালানোর জন্য Insomnia-এর নেটিভ ইউটিলিটি। Newman Postman-এর সমতুল্য। Inso হালকা, আলাদা ইনস্টলেশনের প্রয়োজন নেই (Insomnia-এর সাথে আসে) এবং GraphQL সহ সমস্ত Insomnia অনুরোধ ধরন সমর্থন করে।
হ্যাঁ, Insomnia gRPC ট্যাবের মাধ্যমে gRPC অনুরোধ সমর্থন করে। সার্ভিসের সংজ্ঞাসহ একটি .proto ফাইল লোড করা প্রয়োজন। লোডিংয়ের পরে Insomnia উপলব্ধ RPC পদ্ধতি প্রদর্শন করে এবং পাঠানোর জন্য একটি বাইনারি Protobuf বার্তা তৈরি করে।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন