معرفی
اینسامنیا (Insomnia) یک ابزار دسکتاپ متنباز برای ساخت، ارسال، ذخیره و بررسی درخواستهای API است. توسعهدهنده میتواند یک Endpoint (نقطه پایانی)، یعنی نشانی یک عملیات API، را با متد HTTP مانند GET یا POST، نشانی URL، پارامترهای Query، Header (هدر)، Cookie (کوکی)، بدنه درخواست و اطلاعات احراز هویت تنظیم کند و پاسخ سرور را ببیند.
پاسخ شامل کد وضعیت HTTP، هدرها و بدنه داده است. اینسامنیا برای بررسی APIهای REST و GraphQL کاربرد دارد. در GraphQL، درخواست خواندن داده را Query و درخواست تغییر داده را Mutation مینامند.
این ابزار کمک میکند پیش از اتصال API به رابط کاربری، ورودیها، خطاها و ساختار پاسخ را با قرارداد API مقایسه کنید.
شروع با نخستین درخواست
یک Environment (محیط) بسازید و متغیر Base URL را برابر نشانی سرویس محلی یا آزمایشی قرار دهید.
توکن دسترسی را در متغیری جداگانه نگه دارید و آن را در هدر Authorization فراخوانی کنید.
یک Endpoint امن و ترجیحاً فقطخواندنی، مانند دریافت اطلاعات پروفایل، انتخاب و درخواست را ارسال کنید.
کد وضعیت، هدرها و بدنه پاسخ را با مستندات API مقایسه کنید. تطابق آنها با قرارداد API میتواند نشان دهد درخواست مطابق انتظار کار کرده است.
اگر URL یا اتصال خطا دارد، ابتدا متغیرها، شبکه و تنظیمات کلاینت را بررسی کنید.
اگر پاسخ 401 یا 403 دریافت میکنید، معمولاً توکن، هدر Authorization یا سطح دسترسی نیاز به بررسی دارد.
اگر درخواست معتبر است اما کد وضعیت، بدنه یا پیام خطا با قرارداد API مطابقت ندارد، مسئله را همراه با درخواست و پاسخ ثبت کنید تا سمت سرور نیز بررسی شود.
محیطها و متغیرها
در اینسامنیا میتوان Environmentها را برای نگهداری مقادیری مانند Base URL، توکن، شناسهها و تنظیمات محیطهای مختلف استفاده کرد.
به این ترتیب، همان درخواستها را میتوان بدون تغییر دستی همه مقادیر در محیط توسعه، آزمایش یا سایر محیطها اجرا کرد.
برای اطلاعات حساس، بهتر است از متغیرهای خصوصی یا روشهای مناسب نگهداری اطلاعات محرمانه استفاده کنید و از قرار دادن بیدلیل توکن و رمز عبور در دادههای قابل اشتراک خودداری کنید.
انتخاب میان Insomnia، Postman و Bruno
اینسامنیا برای فرد یا تیمی مناسب است که یک کلاینت دسکتاپ با محیطها، مجموعه درخواستها و پشتیبانی از REST و GraphQL میخواهد و ترجیح میدهد بخش زیادی از کار روزمره را در برنامه دسکتاپ انجام دهد. برای نگهداری درخواستها در Git، روش ذخیرهسازی و همگامسازی پروژه را با فرایند بازبینی مخزن تیم هماهنگ کنید.
Postman را زمانی بررسی کنید که همکاری مبتنی بر فضای ابری، اشتراکگذاری گسترده مجموعهها و مدیریت متمرکز اعضا برای تیم اولویت دارد. Bruno را زمانی مقایسه کنید که رویکرد فایلمحور و نگهداری مجموعهها کنار کد پروژه در Git برایتان مهمتر است. هیچکدام بهتنهایی انتخاب بهتر نیستند. سیاست حریم خصوصی، محل نگهداری دادهها، نیاز به همکاری آنلاین و پلن مورد استفاده از معیارهای اصلیاند.
اشتراکگذاری در اینسامنیا میتواند با قابلیتهای ذخیرهسازی، همگامسازی و همکاری آن انجام شود. امکانات حساب کاربری، فضای ابری و قابلیتهای تیمی ممکن است بر اساس پلن تغییر کنند. پیش از قرار دادن توکنها یا دادههای حساس در فضای مشترک، تنظیمات ذخیرهسازی و اشتراکگذاری را بررسی کنید. پیش از قرار دادن توکنها یا دادههای حساس در فضای مشترک، تنظیمات اشتراکگذاری و پلن را در مستندات رسمی Insomnia بررسی کنید.
ویژگیهای کلیدی
در ادامه، مهمترین موارد این بخش به تفکیک معرفی شدهاند.
-
ساخت و ارسال درخواستهای HTTP
درخواستهای HTTP را با متد، نشانی، پارامترها، هدرها، کوکی، بدنه و اطلاعات احراز هویت تنظیم کنید و پاسخ سرور را ببینید.
-
پشتیبانی از REST و GraphQL
درخواستهای REST و GraphQL را بسازید و کد وضعیت، هدرها، داده پاسخ و خطاهای برگشتی را بررسی کنید.
-
محیطها و متغیرهای قابلاستفاده مجدد
مقادیر مشترک مانند Base URL، توکن و شناسهها را در Environmentها نگه دارید و همان درخواستها را برای محیطهای مختلف استفاده کنید.
-
سازماندهی درخواستها در مجموعهها
درخواستهای مرتبط را در Collection (مجموعه) نگه دارید تا Endpointهای یک سرویس یا پروژه بهصورت منظم در کنار یکدیگر قرار بگیرند.
-
تنظیم احراز هویت درخواست
روشهای احراز هویت موردنیاز API را برای درخواستها تنظیم کنید و اطلاعاتی مانند توکن یا سایر مشخصات دسترسی را مدیریت کنید.
-
وارد کردن تعریف API
تعریفها و قالبهای پشتیبانیشده API را وارد کنید تا ساخت یا انتقال درخواستها و Collectionها سریعتر انجام شود.
کاربردها
موارد زیر تصویری کلی از این بخش برای این ابزار ارائه میکنند.
-
بررسی API بکاند پیش از اتصال فرانتاند
درخواستهای API را مستقل از رابط کاربری ارسال کنید و کد وضعیت، ساختار داده و پیامهای خطا را بررسی کنید.
-
اشکالزدایی خطاهای احراز هویت
توکن، هدر Authorization، Cookie و سطح دسترسی را بررسی کنید تا علت پاسخهایی مانند 401 یا 403 مشخص شود.
-
آزمایش API در محیطهای مختلف
با Environmentها و متغیرها همان درخواست را در محیطهای توسعه، آزمایش یا سایر محیطها اجرا کنید، بدون اینکه همه مقادیر را دستی تغییر دهید.
-
بازبینی قرارداد API در تیم
درخواست و پاسخ واقعی سرویس را با مستندات یا تعریف API مقایسه کنید تا تفاوت رفتار اجراشده با قرارداد مشخص شود.
-
بررسی APIهای GraphQL
Queryها و Mutationها را ارسال کنید و ساختار داده، خطاها و پاسخ GraphQL را بررسی کنید.
ابزارهای جایگزین
اگر این ابزار پاسخگوی نیاز شما نبود، گزینههای زیر را بررسی کنید.
پرسشهای رایج درباره اینسامنیا
اگر درباره این ابزار پرسشی دارید، ممکن است پاسخ آن را در میان موارد زیر پیدا کنید.
اینسامنیا برای چه کسانی مناسب است؟
برای توسعهدهندگان بکاند، فرانتاند و فولاستک و افرادی که نیاز دارند APIها را بررسی، آزمایش یا اشکالزدایی کنند مناسب است.
آیا اینسامنیا جایگزین پستمن است؟
در بسیاری از کارهای روزمره API میتواند جایگزین Postman باشد، اما امکانات و مدل همکاری آنها کاملاً یکسان نیست. انتخاب میان این دو به نیاز تیم، شیوه ذخیرهسازی، همکاری آنلاین و امکانات موردنیاز بستگی دارد.
برای استفاده از اینسامنیا باید برنامهنویس باشم؟
خیر، اما آشنایی با HTTP، API، JSON، متدهای درخواست و کدهای وضعیت کمک میکند از ابزار بهتر استفاده کنید.
چگونه توکن API را در اینسامنیا نگه دارم؟
توکن را میتوانید در Environment قرار دهید و در درخواستها از متغیر مربوط استفاده کنید. برای اطلاعات حساس، تنظیمات نگهداری و اشتراکگذاری متغیرها را نیز بررسی کنید.
آیا اینسامنیا فقط برای APIهای REST است؟
خیر. اینسامنیا علاوه بر REST از GraphQL نیز پشتیبانی میکند و برای بررسی Queryها و Mutationها قابل استفاده است.
چطور مطمئن شوم نخستین درخواست درست کار میکند؟
کد وضعیت، هدرها و بدنه پاسخ را با مستندات API مقایسه کنید. اگر پاسخ با قرارداد مورد انتظار مطابقت دارد، درخواست در سطح مورد بررسی درست عمل کرده است.