Insomnia — এটি কী, ডেভেলপমেন্টে REST এবং GraphQL ক্লায়েন্ট

লেখক: IT Sectr প্রকাশিত: 2026-05-08 পড়ার সময়: 8 মিনিট

Insomnia REST, GraphQL এবং WebSocket API পরীক্ষার জন্য একটি ওপেন-সোর্স ডেস্কটপ HTTP ক্লায়েন্ট। টুলটি ন্যূনতম ইন্টারফেস, বিল্ট-ইন অনুরোধ সম্পাদক এবং রেজিস্ট্রেশনের প্রয়োজন ছাড়াই এনভায়রনমেন্ট ভেরিয়েবল সাপোর্টের জন্য আলাদা। Insomnia Documentation (2026) অনুসারে, ক্লায়েন্টটি 20+ প্রোগ্রামিং ভাষায় কোড অটো-জেনারেশন সমর্থন করে।

মূল বিষয়

  • Insomnia একটি বিনামূল্যের REST এবং GraphQL ক্লায়েন্ট যা কর্মক্ষমতা এবং ক্লাউড সিঙ্ক্রোনাইজেশন ছাড়া স্থানীয় কাজের উপর দৃষ্টি নিবদ্ধ করে।
  • এনভায়রনমেন্ট Insomnia-তে সিনট্যাক্স হাইলাইটিংসহ JSON ফাইলের মাধ্যমে নেস্টিং এবং ভেরিয়েবল ইনহেরিটেন্স সমর্থন করে।
  • GraphQL সম্পাদক-এ স্কিমা অটোকমপ্লিট, টাইপের ডকুমেন্টেশন এবং GraphQL ট্যাবের মাধ্যমে ভিজ্যুয়াল অনুরোধ নির্মাণ অন্তর্ভুক্ত।
  • Code Generation অনুরোধটিকে cURL, Python, JavaScript, Kotlin, Swift, Rust এবং অন্যান্য ভাষায় কোডে রূপান্তর করে।
  • প্লাগইন সিস্টেম ট্যাগিং, এক্সপোর্ট এবং ডেটা জেনারেশনের জন্য তৃতীয়-পক্ষের প্লাগইনের মাধ্যমে কার্যকারিতা প্রসারিত করে।

Insomnia কী এবং মূল বৈশিষ্ট্যসমূহ

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: API ক্লায়েন্টের তুলনা

Insomnia এবং Postman একই কাজ সমাধান করে তবে ভিন্ন অগ্রাধিকার নিয়ে। Insomnia হালকা (~80 MB বনাম ~300 MB), দ্রুত চালু হয় এবং রেজিস্ট্রেশন চাপিয়ে না দিয়ে সম্পূর্ণ অফলাইনে কাজ করে। Postman মনিটরিং, মক-সার্ভার এবং টিম ওয়ার্কস্পেসসহ আরও পরিণত ইকোসিস্টেম অফার করে।

মানদণ্ডInsomniaPostman
অ্যাপের আকার~80 MB~300 MB
অফলাইন মোডসম্পূর্ণসীমিত
GraphQLবিল্ট-ইন সম্পাদকবিটা সংস্করণ
CLIInso CLINewman
প্লাগইনPlugin Hubএক্সটেনশন

কাজ অনুযায়ী টুল নির্বাচন

ব্যক্তিগত ডেভেলপমেন্ট এবং এন্ডপয়েন্টের দ্রুত পরীক্ষার জন্য Insomnia তার হালকাতা এবং রেজিস্ট্রেশনের অনুপস্থিতির কারণে বেশি সুবিধাজনক। ভাগ করা কালেকশন, CI/CD একীকরণ এবং প্রোডাকশন API মনিটরিংসহ টিম কাজের জন্য Postman শিল্প মান হিসেবে রয়ে গেছে।

ওয়ার্কস্পেস এবং এনভায়রনমেন্ট সংগঠিত করা

Insomnia-তে ওয়ার্কস্পেস ফোল্ডারে বিভক্ত অনুরোধ ট্রি ধারণ করে। প্রতিটি অনুরোধ HTTP, GraphQL, WebSocket বা gRPC ধরনের হতে পারে। ড্র্যাগ-এন্ড-ড্রপ, ডুপ্লিকেশন এবং রঙের লেবেল দিয়ে অনুরোধ গোষ্ঠীবদ্ধকরণ সমর্থিত। ওয়ার্কস্পেস কনফিগারেশন ফাইল JSON ফরম্যাটে সংরক্ষিত হয়।

ইনহেরিটেন্সসহ এনভায়রনমেন্ট ভেরিয়েবল

Insomnia নেস্টেড এনভায়রনমেন্ট (Sub Environments) সমর্থন করে যা প্যারেন্টের ভেরিয়েবল ইনহেরিট করে। এটি গ্লোবাল এনভায়রনমেন্টে বেস URL নির্ধারণ এবং বিভিন্ন পরিবেশের জন্য শুধুমাত্র ভিন্ন প্যারামিটার পুনঃসংজ্ঞায়িত করার অনুমতি দেয়। ভেরিয়েবল সিনট্যাক্স {`{`}_variable${`}`} এর মাধ্যমে প্রতিস্থাপিত হয়।

json
// Insomnia এনভায়রনমেন্ট কাঠামোর উদাহরণ
{
    "base_url": "https://api.example.com",
    "timeout": 5000,
    "headers": {
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
}

Insomnia-তে GraphQL নিয়ে কাজ

Insomnia API ক্লায়েন্টগুলির মধ্যে সেরা GraphQL সম্পাদকগুলির একটি প্রদান করে। GraphQL Query ট্যাব লোড করা স্কিমার উপর ভিত্তি করে ফিল্ড অটোকমপ্লিটসহ অনুরোধ লেখার অনুমতি দেয়। ডানে টাইপ, ফিল্ড এবং আর্গুমেন্ট সম্পর্কে ডকুমেন্টেশন রিয়েল টাইমে প্রদর্শিত হয়।

স্কিমা লোড করা এবং Introspection

স্কিমা এন্ডপয়েন্টে GraphQL Introspection অনুরোধের মাধ্যমে লোড হয়। Insomnia স্কিমাটি স্থানীয়ভাবে ক্যাশ করে এবং পরিবর্তন হলে স্বয়ংক্রিয়ভাবে আপডেট করে। লোডিংয়ের পরে অটোকমপ্লিট (Ctrl+Space), অনুরোধ ভ্যালিডেশন এবং পাঠানোর আগে সম্ভাব্য ত্রুটির প্রিভিউ উপলব্ধ হয়।

graphql
# Insomnia-তে ভেরিয়েবলসহ GraphQL কুয়েরি
query GetUser($id: ID!) {
    user(id: $id) {
        name
        email
        posts {
            title
            createdAt
        }
    }
}

প্লাগইন এবং ক্ষমতার বিস্তার

Insomnia Plugin Hub-এ 100টিরও বেশি প্লাগইন রয়েছে যা ক্লায়েন্টের কার্যকারিতা প্রসারিত করে। প্লাগইনগুলি Preferences → Plugins মেনুর মাধ্যমে বা npm-এর মাধ্যমে ম্যানুয়ালি ইনস্টল করা হয়। জনপ্রিয় বিভাগগুলির মধ্যে রয়েছে পরীক্ষার ডেটা জেনারেশন, বিভিন্ন ফরম্যাটে এক্সপোর্ট এবং কাস্টম প্রতিক্রিয়া ভ্যালিডেটর। প্রতিটি প্লাগইন পাবলিক ডেভেলপার হাবে প্রকাশের আগে বাধ্যতামূলক মডারেশনের মধ্য দিয়ে যায়।

জনপ্রিয় প্লাগইন

  • insomnia-plugin-faker — পরীক্ষার অনুরোধের জন্য জাল ডেটা (নাম, ইমেইল, ফোন) জেনারেশন।
  • insomnia-plugin-aws4 — Amazon API Gateway এবং S3-এর সাথে কাজের জন্য AWS Signature Version 4 দ্বারা অনুরোধ স্বাক্ষর।
  • insomnia-plugin-utils — অনুরোধে সরাসরি তারিখ, হ্যাশিং এবং Base64 এনকোডিং নিয়ে কাজ করার জন্য ইউটিলিটি।

প্লাগইনগুলি JavaScript এ লেখা হয় এবং টেমপ্লেটিং API (response.*, request.*, environment.*) এর মাধ্যমে Insomnia-এর সাথে ইন্টারঅ্যাক্ট করে। প্লাগইন ডেভেলপ করতে Node.js-এর মৌলিক জ্ঞান এবং insomnia-plugin ট্যাগসহ npm প্যাকেজের মাধ্যমে প্রকাশ প্রয়োজন।

CLI এবং পরীক্ষা স্বয়ংক্রিয়করণ

Inso CLI টার্মিনাল থেকে অনুরোধ এবং পরীক্ষা চালানোর জন্য Insomnia-তে নির্মিত একটি কনসোল ইউটিলিটি। Inso পৃথক অনুরোধ বা পুরো কালেকশন চালায়, ফলাফল JSON-এ এক্সপোর্ট করে এবং CI/CD পাইপলাইনে একীভূত হতে পারে। inso run collection কমান্ড কালেকশনের সমস্ত অনুরোধ ক্রমানুসারে সম্পাদন করে।

GitHub Actions-এ একীকরণের উদাহরণ

Inso CLI Docker কন্টেইনার এবং হেডলেস মোডে কাজ করে, যা GitHub Actions এবং GitLab CI-তে ব্যবহারের অনুমতি দেয়। লঞ্চ কনফিগারেশন YAML ফাইলে এক্সপোর্ট করা কালেকশন এবং এনভায়রনমেন্টের পথ উল্লেখ করে বর্ণিত হয়। JavaScript স্ক্রিপ্টের মাধ্যমে স্ট্যাটাস কোড এবং প্রতিক্রিয়া বডিতে অ্যাসারশন সমর্থিত।

yaml
# 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

Git-এর সাথে Insomnia একীকরণ এবং টিম কাজ

Insomnia Git-এর মাধ্যমে কালেকশন সিঙ্ক্রোনাইজেশন সমর্থন করে। কালেকশন ফাইল JSON ফরম্যাটে সংরক্ষিত হয় এবং প্রজেক্ট রিপোজিটরিতে যোগ করা যেতে পারে। Insomnia পরিবর্তন দেখার, কমিট তৈরি করার এবং ইন্টারফেস থেকে সরাসরি মার্জ দ্বন্দ্ব সমাধানের জন্য বিল্ট-ইন Git ক্লায়েন্ট প্রদান করে।

Git সিঙ্ক্রোনাইজেশন সেটআপ

Git সংযোগ করতে রিপোজিটরিসহ একটি স্থানীয় ফোল্ডার তৈরি করুন এবং Insomnia সেটিংসে এটি রুট ডিরেক্টরি হিসেবে উল্লেখ করুন। অ্যাপ্লিকেশন কালেকশন ফাইলের পরিবর্তন স্বয়ংক্রিয়ভাবে ট্র্যাক করে এবং Version Control প্যানেলে প্রদর্শন করে। মানক অপারেশন সমর্থিত: commit, push, pull এবং সংস্করণের মধ্যে diff দেখা।

Insomnia Cloud-এর মাধ্যমে টিম কাজ

Git ছাড়া প্রজেক্টের জন্য Insomnia Insomnia Cloud-এর মাধ্যমে ক্লাউড সিঙ্ক্রোনাইজেশন অফার করে। বিনামূল্যের প্ল্যানে দলের 3 জন সদস্য এবং কালেকশনের স্বয়ংক্রিয় ব্যাকআপ অন্তর্ভুক্ত। পেইড প্ল্যান অ্যাক্সেস ম্যানেজমেন্ট, পরিবর্তন অডিট এবং অগ্রাধিকার সমর্থন যোগ করে।

সিঙ্ক্রোনাইজেশন পদ্ধতিবিনামূল্যেঅফলাইনসংস্করণ নিয়ন্ত্রণ
Git (স্থানীয়)হ্যাঁহ্যাঁসম্পূর্ণ (commit, diff, merge)
Insomnia Cloud3 জন ব্যবহারকারী পর্যন্তনামৌলিক (পরিবর্তন ইতিহাস)
ফাইল এক্সপোর্টহ্যাঁহ্যাঁম্যানুয়াল (সংস্করণ নিয়ন্ত্রণ সিস্টেমের মাধ্যমে)

Design Mode এবং স্পেসিফিকেশন জেনারেশন

Insomnia-তে Design Mode OpenAPI 3.0 ফরম্যাটে API স্পেসিফিকেশন তৈরি করতে দেয়। মোডটি ভিজ্যুয়াল সম্পাদক হিসেবে কাজ করে: ম্যানুয়ালি YAML না লিখে এন্ডপয়েন্ট এবং ডেটা স্কিমা নির্ধারণ করুন। স্পেসিফিকেশন JSON বা YAML-এ এক্সপোর্ট করা যেতে পারে।

OpenAPI থেকে কালেকশন জেনারেশন

Insomnia OpenAPI স্পেসিফিকেশন ইমপোর্ট করে এবং প্রতিটি এন্ডপয়েন্টের জন্য অনুরোধের কালেকশন তৈরি করে। পাথ এবং স্কিমা প্রস্তুত HTTP অনুরোধে রূপান্তরিত হয়। ফাংশনটি মাইক্রোসার্ভিসের সাথে একীকরণে উপযোগী, যেখানে স্পেসিফিকেশন টিমের আলাদা রিপোজিটরিতে সংরক্ষিত থাকে।

অনুরোধ ট্যাগিং

প্রতিটি অনুরোধে একটি রঙিন লেবেল নির্ধারণ করা যেতে পারে: red, blue, green, orange, purple। ট্যাগ অনুসারে ফিল্টারিং ফোল্ডার কাঠামো থেকে স্বাধীনভাবে সার্চ বারের মাধ্যমে কাজ করে, যা শত শত এন্ডপয়েন্ট এবং অনেক মডিউলযুক্ত প্রজেক্টে নেভিগেশন সহজ করে।

Design Mode এবং স্পেসিফিকেশন জেনারেশন

Insomnia-তে Design Mode অ্যাপ্লিকেশনের ভিতরেই OpenAPI 3.0 ফরম্যাটে API স্পেসিফিকেশন তৈরি করতে দেয়। মোডটি ভিজ্যুয়াল সম্পাদক হিসেবে কাজ করে: ম্যানুয়ালি YAML না লিখে এন্ডপয়েন্ট, ডেটা স্কিমা এবং প্যারামিটার নির্ধারণ করুন। স্পেসিফিকেশন রিপোজিটরিতে প্রকাশের জন্য JSON বা YAML-এ এক্সপোর্ট করা যেতে পারে।

OpenAPI থেকে কালেকশন জেনারেশন

Insomnia বিদ্যমান OpenAPI স্পেসিফিকেশন ইমপোর্ট করে এবং প্রতিটি এন্ডপয়েন্টের জন্য স্বয়ংক্রিয়ভাবে অনুরোধের কালেকশন তৈরি করে। পাথ এবং স্কিমা সঠিক ডেটা টাইপসহ প্রস্তুত HTTP অনুরোধে রূপান্তরিত হয়। এই ফাংশনটি মাইক্রোসার্ভিসের সাথে একীকরণে উপযোগী, যেখানে স্পেসিফিকেশন একটি আলাদা ব্যাকএন্ড ডেভেলপমেন্ট টিম দ্বারা সংরক্ষিত এবং রক্ষণাবেক্ষণ করা হয়।

অনুরোধ ট্যাগিং এবং ফিল্টারিং

বড় সংখ্যক অনুরোধ সংগঠিত করতে Insomnia ট্যাগিং সমর্থন করে — প্রতিটি অনুরোধে একটি রঙিন লেবেল নির্ধারণ করা যেতে পারে: red, blue, green, orange, purple। ট্যাগ অনুসারে ফিল্টারিং ফোল্ডার কাঠামো থেকে স্বাধীনভাবে সার্চ বারের মাধ্যমে কাজ করে, যা শত শত এন্ডপয়েন্ট এবং অনেক কার্যকরী API মডিউলযুক্ত প্রজেক্টে নেভিগেশন সহজ করে।

সচরাচর জিজ্ঞাসিত প্রশ্ন

Insomnia-এর সাথে কাজ করার জন্য কি রেজিস্ট্রেশন প্রয়োজন?

না, রেজিস্ট্রেশন বাধ্যতামূলক নয়। Insomnia সম্পূর্ণ অফলাইনে কাজ করে। ক্লাউড সিঙ্ক্রোনাইজেশন টিম কাজের জন্য একটি বিকল্প হিসেবে উপলব্ধ, তবে সমস্ত ডেটা ফোল্ডার ~/.config/Insomnia/-এ JSON ফাইলে স্থানীয়ভাবে সংরক্ষিত থাকে।

কীভাবে Postman থেকে Insomnia-তে কালেকশন ইমপোর্ট করবেন?

Postman থেকে কালেকশনটি JSON ফরম্যাটে (Collection v2.1) এক্সপোর্ট করুন। Insomnia-তে Import/Export → Import Data → From File নির্বাচন করুন। Insomnia অনুরোধ, হেডার এবং এনভায়রনমেন্ট ভেরিয়েবল সংরক্ষণ করে কালেকশনটি স্বয়ংক্রিয়ভাবে রূপান্তর করে।

Insomnia কি WebSocket সমর্থন করে?

হ্যাঁ, 2022 সংস্করণ থেকে। Insomnia WebSocket এবং Socket.IO প্রোটোকল সমর্থন করে। WebSocket ধরনের একটি নতুন অনুরোধ তৈরি করুন, URL (ws:// বা wss://) উল্লেখ করুন এবং চ্যাট ইন্টারফেসের মাধ্যমে বার্তা পাঠান।

Inso CLI কীভাবে Newman থেকে আলাদা?

Inso CLI কনসোল থেকে কালেকশন চালানোর জন্য Insomnia-এর নেটিভ ইউটিলিটি। Newman Postman-এর সমতুল্য। Inso হালকা, আলাদা ইনস্টলেশনের প্রয়োজন নেই (Insomnia-এর সাথে আসে) এবং GraphQL সহ সমস্ত Insomnia অনুরোধ ধরন সমর্থন করে।

gRPC-এর জন্য কি Insomnia ব্যবহার করা যাবে?

হ্যাঁ, Insomnia gRPC ট্যাবের মাধ্যমে gRPC অনুরোধ সমর্থন করে। সার্ভিসের সংজ্ঞাসহ একটি .proto ফাইল লোড করা প্রয়োজন। লোডিংয়ের পরে Insomnia উপলব্ধ RPC পদ্ধতি প্রদর্শন করে এবং পাঠানোর জন্য একটি বাইনারি Protobuf বার্তা তৈরি করে।

সারাংশ

  • Insomnia সম্পূর্ণ অফলাইন কার্যক্রমসহ REST, GraphQL এবং WebSocket-এর জন্য একটি হালকা ও দ্রুত HTTP ক্লায়েন্ট।
  • GraphQL সম্পাদক অটোকমপ্লিট এবং Introspection-এর মাধ্যমে স্কিমা লোডিংসহ API ক্লায়েন্টগুলির মধ্যে অন্যতম সেরা সমাধান।
  • এনভায়রনমেন্ট বিভিন্ন পরিবেশের জন্য নমনীয় কনফিগারেশনের জন্য নেস্টিং এবং ভেরিয়েবল ইনহেরিটেন্স সমর্থন করে।
  • কোড জেনারেশন 20+ ভাষায় মোবাইল এবং ওয়েব অ্যাপ্লিকেশনে API একীকরণ ত্বরান্বিত করে।
  • Plugin Hub ডেটা জেনারেশন, অনুরোধ স্বাক্ষর এবং কাস্টম ভ্যালিডেশনের জন্য প্লাগইনের মাধ্যমে কার্যকারিতা প্রসারিত করে।
  • Inso CLI গ্রাফিকাল ইন্টারফেস ছাড়াই CI/CD-তে কালেকশন চালায়, ফলাফল JUnit ফরম্যাটে এক্সপোর্ট করে।
  • gRPC সমর্থন .proto ফাইল লোডিংসহ Insomnia-কে মাইক্রোসার্ভিস আর্কিটেকচারের জন্য একটি সর্বজনীন টুল করে তোলে।

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন