Insomnia هو عميل HTTP لسطح المكتب مفتوح المصدر لاختبار واجهات API من نوع REST و GraphQL و WebSocket. تتميز الأداة بواجهة بسيطة ومحرر طلبات مدمج ودعم متغيرات البيئة دون الحاجة إلى التسجيل. وفقاً لـ Insomnia Documentation (2026)، يدعم العميل التوليد التلقائي للكود بأكثر من 20 لغة برمجة.
أهم النقاط
Insomnia هو تطبيق متعدد المنصات (Electron) لإرسال طلبات HTTP وتصحيح أخطاء API. تطوره شركة Kong منذ عام 2016 كبديل لـ 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 نظاماً بيئياً أكثر نضجاً مع مراقبة وخوادم mock ومساحات عمل جماعية.
| المعيار | 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 واحداً من أفضل محررات GraphQL بين عملاء API. يتيح تبويب GraphQL Query كتابة استعلامات مع الإكمال التلقائي للحقول بناءً على المخطط المحمّل. وعلى اليمين تُعرض توثيقات الأنواع والحقول والوسائط في الوقت الفعلي.
يُحمَّل المخطط عبر طلب GraphQL Introspection إلى نقطة النهاية. يخزن Insomnia المخطط محلياً في الذاكرة المؤقتة ويحدّثه تلقائياً عند التغييرات. بعد التحميل، يتوفر الإكمال التلقائي (Ctrl+Space) والتحقق من صحة الاستعلام ومعاينة الأخطاء المحتملة قبل الإرسال.
# استعلام GraphQL مع متغيرات في Insomnia
query GetUser($id: ID!) {
user(id: $id) {
name
email
posts {
title
createdAt
}
}
}
يحتوي Insomnia Plugin Hub على أكثر من 100 إضافة توسع وظائف العميل. تُثبت الإضافات عبر قائمة Preferences ← Plugins أو يدوياً عبر npm. تشمل الفئات الشائعة توليد بيانات الاختبار والتصدير إلى صيغ مختلفة ومحللي استجابة مخصصين. تخضع كل إضافة للمراجعة الإلزامية قبل نشرها في المركز العام للمطورين.
تُكتب الإضافات بلغة JavaScript وتتفاعل مع Insomnia عبر واجهة القوالب (response.*، request.*، environment.*). يتطلب تطوير الإضافة معرفة أساسية بـ Node.js ونشرها عبر حزمة npm بوسم insomnia-plugin.
Inso CLI هو أداة سطر أوامر مدمجة في Insomnia لتشغيل الطلبات والاختبارات من الطرفية. يشغّل Inso طلبات فردية أو مجموعات كاملة، ويصدّر النتائج إلى JSON، ويمكن دمجه في خطوط CI/CD. ينفذ الأمر inso run collection جميع الطلبات في المجموعة تباعاً.
يعمل Inso CLI في حاويات Docker ووضع headless، ما يسمح باستخدامه في GitHub Actions و GitLab CI. يُوصف إعداد التشغيل في ملف YAML مع تحديد المسار إلى المجموعة المُصدَّرة والبيئة. تُدعم التأكيدات على رمز الحالة وجسم الاستجابة عبر سكربتات JavaScript.
# سير عمل GitHub Actions مع 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. تُخزن ملفات المجموعات بصيغة JSON ويمكن إضافتها إلى مستودع المشروع. يوفر Insomnia عميل Git مدمجاً لعرض التغييرات وإنشاء الالتزامات وحل تعارضات الدمج مباشرة من الواجهة.
لربط Git، أنشئ مجلداً محلياً بمستودع وحدده كدليل جذر في إعدادات Insomnia. يتتبع التطبيق تلقائياً التغييرات في ملفات المجموعة ويعرضها في لوحة Version Control. تُدعم العمليات القياسية: commit و push و pull وعرض الفروق بين الإصدارات.
للمشاريع دون Git، يقدم Insomnia مزامنة سحابية عبر Insomnia Cloud. تشمل الخطة المجانية حتى 3 أعضاء في الفريق ونسخاً احتياطياً تلقائياً للمجموعات. تضيف الخطط المدفوعة إدارة الوصول وتدقيق التغييرات والدعم ذا الأولوية.
| طريقة المزامنة | مجاني | دون اتصال | التحكم في الإصدارات |
|---|---|---|---|
| Git (محلي) | نعم | نعم | كامل (commit, diff, merge) |
| Insomnia Cloud | حتى 3 مستخدمين | لا | أساسي (سجل التغييرات) |
| تصدير الملفات | نعم | نعم | يدوي (عبر نظام التحكم في الإصدارات) |
يتيح Design Mode في Insomnia إنشاء مواصفات API بصيغة OpenAPI 3.0. يعمل الوضع كمحرر مرئي: حدد نقاط النهاية ومخططات البيانات دون كتابة YAML يدوياً. يمكن تصدير المواصفة إلى JSON أو YAML.
يستورد Insomnia مواصفات OpenAPI وينشئ مجموعة طلبات لكل نقطة نهاية. تُحوَّل المسارات والمخططات إلى طلبات HTTP جاهزة. تعد هذه الميزة مفيدة عند التكامل مع الخدمات المصغرة حيث تُخزن المواصفة في مستودع منفصل للفريق.
يمكن تخصيص تسمية ملونة لكل طلب: red و blue و green و orange و purple. يعمل التصفية حسب الوسوم عبر شريط البحث بغض النظر عن بنية المجلدات، ما يبسّط التنقل في المشاريع التي تضم مئات نقاط النهاية والعديد من الوحدات.
يتيح Design Mode في Insomnia إنشاء مواصفات API بصيغة OpenAPI 3.0 مباشرة داخل التطبيق. يعمل الوضع كمحرر مرئي: حدد نقاط النهاية ومخططات البيانات والمعاملات دون كتابة YAML يدوياً. يمكن تصدير المواصفة إلى JSON أو YAML لنشرها في المستودعات.
يستورد Insomnia مواصفات OpenAPI الحالية وينشئ تلقائياً مجموعة طلبات لكل نقطة نهاية. تُحوَّل المسارات والمخططات إلى طلبات HTTP جاهزة بأنواع بيانات صحيحة. تعد هذه الميزة مفيدة عند التكامل مع الخدمات المصغرة حيث تُخزن المواصفة وتحافظ عليها فريق تطوير خلفي منفصل.
لتنظيم عدد كبير من الطلبات، يدعم Insomnia الوسم: يمكن تخصيص تسمية ملونة لكل طلب: red و blue و green و orange و purple. يعمل التصفية حسب الوسوم عبر شريط البحث بغض النظر عن بنية المجلدات، ما يبسّط التنقل في المشاريع التي تضم مئات نقاط النهاية والعديد من الوحدات الوظيفية لـ API.
الأسئلة الشائعة
لا، التسجيل غير مطلوب. يعمل Insomnia بالكامل دون اتصال. تتوفر المزامنة السحابية كخيار للعمل الجماعي، لكن تُخزن جميع البيانات محلياً في ملفات JSON في المجلد ~/.config/Insomnia/.
صدّر المجموعة من 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) ويدعم جميع أنواع طلبات Insomnia بما فيها GraphQL.
نعم، يدعم Insomnia طلبات gRPC عبر تبويب gRPC. يلزم تحميل ملف .proto بتعريف الخدمة. بعد التحميل، يعرض Insomnia طرق RPC المتاحة وينشئ رسالة Protobuf ثنائية للإرسال.
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا