Insomnia — چیست، کلاینت REST و GraphQL در توسعه

نویسنده: IT Sectr منتشر شده: 2026-05-08 زمان مطالعه: 8 دقیقه

Insomnia — یک کلاینت HTTP دسکتاپی متن‌باز برای تست APIهای REST، GraphQL و WebSocket است. این ابزار با رابط کاربری مینیمالیستی، ویرایشگر داخلی درخواست و پشتیبانی از متغیرهای محیطی بدون نیاز به ثبت‌نام متمایز می‌شود. طبق Insomnia Documentation (2026)، کلاینت تولید خودکار کد در بیش از 20 زبان برنامه‌نویسی را پشتیبانی می‌کند.

مهم‌ترین نکات

  • Insomnia — کلاینت رایگان REST و GraphQL با تمرکز بر کارایی و کار محلی بدون همگام‌سازی ابری.
  • محیط‌ها در Insomnia از تو در تویی و وراثت متغیرها از طریق فایل‌های JSON با برجسته‌سازی نحو پشتیبانی می‌کنند.
  • ویرایشگر GraphQL شامل تکمیل خودکار طرح، مستندات نوع‌ها و ساخت بصری درخواست‌ها از طریق تب GraphQL است.
  • Code Generation درخواست را به کد در cURL، Python، JavaScript، Kotlin، Swift، Rust و زبان‌های دیگر تبدیل می‌کند.
  • سیستم افزونه‌ها قابلیت‌ها را از طریق افزونه‌های شخص ثالث برای برچسب‌گذاری، صادرات و تولید داده گسترش می‌دهد.

Insomnia چیست و ویژگی‌های کلیدی

Insomnia — یک برنامه چندسکویی (Electron) برای ارسال درخواست‌های HTTP و اشکال‌زدایی API است. از سال 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 مگابایت در برابر ~300 مگابایت)، سریع‌تر راه‌اندازی می‌شود و بدون تحمیل ثبت‌نام کاملاً آفلاین کار می‌کند. Postman اکوسیستم بالغ‌تری با نظارت، سرورهای mock و فضای کاری تیمی ارائه می‌دهد.

معیارInsomniaPostman
وزن برنامه~80 مگابایت~300 مگابایت
حالت آفلاینکاملمحدود
GraphQLویرایشگر داخلینسخه بتا
CLIInso CLINewman
افزونه‌هاPlugin Hubبرنامه‌های افزودنی

انتخاب ابزار متناسب با کار

برای توسعه فردی و تست سریع نقاط پایانی Insomnia به دلیل سبکی و عدم نیاز به ثبت‌نام راحت‌تر است. برای کار تیمی با مجموعه مشترک، یکپارچه‌سازی CI/CD و نظارت بر API تولید، Postman استاندارد صنعت باقی می‌ماند.

سازماندهی فضای کاری و محیط‌ها

Workspace در Insomnia شامل درخت درخواست‌هایی است که به پوشه‌ها تقسیم می‌شود. هر درخواست می‌تواند از نوع HTTP، GraphQL، WebSocket یا gRPC باشد. کشیدن و رها کردن، تکرار و گروه‌بندی درخواست‌ها بر اساس برچسب‌های رنگی پشتیبانی می‌شود. فایل پیکربندی workspace به صورت JSON ذخیره می‌شود.

متغیرهای محیطی با وراثت

Insomnia از محیط‌های تودرتو (Sub Environments) پشتیبانی می‌کند که متغیرهای والد را به ارث می‌برند. این امکان تعریف URL پایه در محیط جهانی و بازتعریف فقط پارامترهای متفاوت برای محیط‌های مختلف را فراهم می‌کند. متغیرها با نحو {`{`}_variable${`}`} جایگزین می‌شوند.

json
// نمونه ساختار محیط Insomnia
{
    "base_url": "https://api.example.com",
    "timeout": 5000,
    "headers": {
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
}

کار با GraphQL در Insomnia

Insomnia یکی از بهترین ویرایشگرهای GraphQL را در میان کلاینت‌های API ارائه می‌دهد. تب GraphQL Query امکان نوشتن درخواست‌ها با تکمیل خودکار فیلدها بر اساس طرح بارگذاری‌شده را فراهم می‌کند. در سمت راست مستندات نوع‌ها، فیلدها و آرگومان‌ها به صورت زنده نمایش داده می‌شود.

بارگذاری طرح و Introspection

طرح از طریق درخواست GraphQL Introspection به نقطه پایانی بارگذاری می‌شود. Insomnia طرح را به صورت محلی کش می‌کند و در صورت تغییرات به صورت خودکار به‌روزرسانی می‌کند. پس از بارگذاری، تکمیل خودکار (Ctrl+Space)، اعتبارسنجی درخواست و پیش‌نمایش خطاهای احتمالی قبل از ارسال در دسترس می‌شود.

graphql
# درخواست GraphQL با متغیرها در Insomnia
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 — امضای درخواست‌ها بر اساس AWS Signature Version 4 برای کار با Amazon API Gateway و S3.
  • insomnia-plugin-utils — ابزارهای کار با تاریخ‌ها، هش کردن و کدگذاری Base64 مستقیماً در درخواست‌ها.

افزونه‌ها به زبان JavaScript نوشته می‌شوند و از طریق API قالب‌ساز با Insomnia تعامل دارند (response.*، request.*، environment.*). توسعه افزونه نیاز به دانش پایه Node.js و انتشار از طریق بسته npm با برچسب insomnia-plugin دارد.

CLI و خودکارسازی تست

Inso CLI — ابزار خط فرمانی است که در Insomnia برای اجرای درخواست‌ها و تست‌ها از ترمینال تعبیه شده است. Inso درخواست‌های جداگانه یا کل مجموعه‌ها را اجرا می‌کند، نتایج را به JSON صادر می‌کند و می‌تواند در خطوط لوله CI/CD ادغام شود. دستور inso run collection به ترتیب همه درخواست‌های مجموعه را اجرا می‌کند.

نمونه یکپارچه‌سازی در GitHub Actions

Inso CLI در کانتینرهای Docker و حالت headless کار می‌کند که امکان استفاده از آن را در GitHub Actions و GitLab CI فراهم می‌کند. پیکربندی اجرا در فایل YAML با ذکر مسیر مجموعه صادرشده و محیط توصیف می‌شود. تأییدها بر روی کد وضعیت و بدنه پاسخ از طریق اسکریپت‌های JavaScript پشتیبانی می‌شوند.

yaml
# workflow گیت‌هاب اکشنز با Inso CLI
- name: Run API tests
  run: npx insomnia-inso run collection
    --collection "Auth API"
    --env "Staging"
    --reporter junit
    --output reports/api-results.xml

یکپارچه‌سازی Insomnia با Git و کار تیمی

Insomnia از همگام‌سازی مجموعه‌ها از طریق Git پشتیبانی می‌کند. فایل‌های مجموعه‌ها به صورت JSON ذخیره می‌شوند و می‌توانند به مخزن پروژه اضافه شوند. Insomnia یک کلاینت Git داخلی برای مشاهده تغییرات، ایجاد commit و حل تعارض‌های ادغام مستقیماً از رابط کاربری ارائه می‌دهد.

پیکربندی همگام‌سازی Git

برای اتصال Git، یک پوشه محلی با مخزن ایجاد کنید و آن را به عنوان دایرکتوری ریشه در تنظیمات Insomnia مشخص کنید. برنامه به صورت خودکار تغییرات فایل‌های مجموعه را ردیابی می‌کند و آن‌ها را در پنل Version Control نمایش می‌دهد. عملیات استاندارد پشتیبانی می‌شود: commit، push، pull و مشاهده diff بین نسخه‌ها.

کار تیمی از طریق Insomnia Cloud

برای پروژه‌های بدون Git، Insomnia همگام‌سازی ابری از طریق Insomnia Cloud ارائه می‌دهد. تعرفه رایگان شامل حداکثر 3 عضو تیم و پشتیبان‌گیری خودکار از مجموعه‌ها است. تعرفه‌های پولی مدیریت دسترسی، ممیزی تغییرات و پشتیبانی اولویت‌دار را اضافه می‌کنند.

روش همگام‌سازیرایگانآفلاینکنترل نسخه
Git (محلی)بلهبلهکامل (commit، diff، merge)
Insomnia Cloudحداکثر 3 کاربرخیرپایه (تاریخچه تغییرات)
صادرات فایلبلهبلهدستی (از طریق سیستم کنترل نسخه)

Design Mode و تولید مشخصات

Design Mode در Insomnia امکان ایجاد مشخصات API در قالب OpenAPI 3.0 را فراهم می‌کند. این حالت مانند یک ویرایشگر بصری کار می‌کند: بدون نوشتن دستی YAML، نقاط پایانی و طرح‌های داده را تعریف کنید. مشخصات را می‌توان به JSON یا YAML صادر کرد.

تولید مجموعه از OpenAPI

Insomnia مشخصات OpenAPI را وارد می‌کند و برای هر نقطه پایانی مجموعه‌ای از درخواست‌ها ایجاد می‌کند. مسیرها و طرح‌ها به درخواست‌های HTTP آماده تبدیل می‌شوند. این عملکرد هنگام یکپارچه‌سازی با میکروسرویس‌ها مفید است، جایی که مشخصات در مخزن جداگانه تیم نگهداری می‌شود.

برچسب‌گذاری درخواست‌ها

به هر درخواست می‌توان برچسب رنگی اختصاص داد: red، blue، green، orange، purple. فیلتر بر اساس برچسب‌ها از طریق نوار جستجو مستقل از ساختار پوشه‌ها کار می‌کند که ناوبری در پروژه‌هایی با صدها نقطه پایانی و ماژول‌های متعدد را ساده می‌کند.

Design Mode و تولید مشخصات

Design Mode در Insomnia امکان ایجاد مشخصات API در قالب OpenAPI 3.0 را مستقیماً داخل برنامه فراهم می‌کند. این حالت مانند یک ویرایشگر بصری کار می‌کند: بدون نوشتن دستی YAML، نقاط پایانی، طرح‌های داده و پارامترها را تعریف کنید. مشخصات را می‌توان برای انتشار در مخزن به JSON یا YAML صادر کرد.

تولید مجموعه از OpenAPI

Insomnia مشخصات OpenAPI موجود را وارد می‌کند و به صورت خودکار مجموعه‌ای از درخواست‌ها برای هر نقطه پایانی ایجاد می‌کند. مسیرها و طرح‌ها با انواع داده صحیح به درخواست‌های HTTP آماده تبدیل می‌شوند. این عملکرد هنگام یکپارچه‌سازی با میکروسرویس‌ها مفید است، جایی که مشخصات توسط تیم جداگانه توسعه‌دهندگان بک‌اند نگهداری و پشتیبانی می‌شود.

برچسب‌گذاری و فیلتر درخواست‌ها

برای سازمان‌دهی تعداد زیادی درخواست، Insomnia از برچسب‌گذاری پشتیبانی می‌کند — به هر درخواست می‌توان برچسب رنگی اختصاص داد: red، blue، green، orange، purple. فیلتر بر اساس برچسب‌ها از طریق نوار جستجو مستقل از ساختار پوشه‌ها کار می‌کند که ناوبری در پروژه‌هایی با صدها نقطه پایانی و ماژول‌های عملکردی متعدد API را ساده می‌کند.

سوالات متداول

آیا برای کار با Insomnia ثبت‌نام لازم است؟

خیر، ثبت‌نام الزامی نیست. Insomnia کاملاً آفلاین کار می‌کند. همگام‌سازی ابری به عنوان گزینه‌ای برای کار تیمی در دسترس است، اما همه داده‌ها به صورت محلی در فایل‌های JSON در پوشه ~/.config/Insomnia/ ذخیره می‌شوند.

چگونه مجموعه‌ای از 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 عرضه می‌شود) و همه انواع درخواست‌های Insomnia از جمله GraphQL را پشتیبانی می‌کند.

آیا می‌توان از Insomnia برای gRPC استفاده کرد؟

بله، Insomnia از درخواست‌های gRPC از طریق تب gRPC پشتیبانی می‌کند. لازم است فایل .proto با تعریف سرویس بارگذاری شود. پس از بارگذاری، Insomnia متدهای RPC موجود را نمایش می‌دهد و پیام باینری Protobuf برای ارسال تولید می‌کند.

جمع‌بندی

  • Insomnia — کلاینت HTTP سبک و سریع برای REST، GraphQL و WebSocket با کار کاملاً آفلاین.
  • ویرایشگر GraphQL با تکمیل خودکار و بارگذاری طرح از طریق Introspection — یکی از بهترین راه‌حل‌ها در میان کلاینت‌های API.
  • محیط‌ها از تودرتو بودن و وراثت متغیرها برای پیکربندی انعطاف‌پذیر برای محیط‌های مختلف پشتیبانی می‌کنند.
  • تولید کد در بیش از 20 زبان، یکپارچه‌سازی API را در برنامه‌های موبایل و وب سرعت می‌بخشد.
  • Plugin Hub قابلیت‌ها را از طریق افزونه‌ها برای تولید داده، امضای درخواست‌ها و اعتبارسنجی سفارشی گسترش می‌دهد.
  • Inso CLI مجموعه‌ها را در CI/CD بدون رابط گرافیکی با صادرات نتایج به فرمت JUnit اجرا می‌کند.
  • gRPC با پشتیبانی از بارگذاری فایل‌های .proto، Insomnia را به ابزاری جهانی برای معماری میکروسرویس تبدیل می‌کند.

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید