Insomnia, REST, GraphQL ve WebSocket API'lerini test etmek için açık kaynaklı bir masaüstü HTTP istemcisidir. Araç; minimalist arayüzü, yerleşik istek düzenleyicisi ve kayıt gerektirmeyen ortam değişkeni desteğiyle öne çıkar. Insomnia Documentation (2026)'ya göre istemci, 20'den fazla programlama dilinde kod otomatik üretimini destekler.
Öne çıkanlar
Insomnia, HTTP istekleri göndermek ve API'lerde hata ayıklamak için çok platformlu bir uygulamadır (Electron). Hız ve gizliliğe odaklanan Postman alternatifi olarak 2016'dan beri Kong şirketi tarafından geliştirilmektedir: veriler yerel olarak saklanır, bulut senkronizasyonu isteğe bağlıdır ve kayıt gerektirir.
Ana pencere üç sütuna bölünmüştür: solda istek ağacı (Workspace), ortada Params, Headers, Body sekmeleriyle istek düzenleyicisi, sağda Pretty, Raw ve Preview modlarıyla yanıt paneli. Koyu tema varsayılan olarak etkindir ve CSS değişkenleri aracılığıyla özel temalar desteklenir.
Insomnia, bir isteğin 20'den fazla dilde ve framework'te koda dışa aktarılmasını destekler: cURL, HTTPie, Python Requests, JavaScript Fetch/Axios, Kotlin OkHttp, Swift URLSession, Java Unirest, Ruby Net::HTTP ve diğerleri. Üretici; başlıkları, istek gövdesini ve kimlik doğrulama türünü dikkate alır, bu da API'nin uygulama koduna entegrasyonunu hızlandırır.
Insomnia ve Postman aynı görevi çözer ancak farklı önceliklerle. Insomnia daha hafiftir (~80 MB'ye karşı ~300 MB), daha hızlı başlar ve kayıt zorlamadan tamamen çevrimdışı çalışır. Postman; izleme, mock sunucular ve ekip çalışma alanlarıyla daha olgun bir ekosistem sunar.
| Kriter | Insomnia | Postman |
|---|---|---|
| Uygulama boyutu | ~80 MB | ~300 MB |
| Çevrimdışı mod | Tam | Sınırlı |
| GraphQL | Yerleşik düzenleyici | Beta sürüm |
| CLI | Inso CLI | Newman |
| Eklentiler | Plugin Hub | Uzantılar |
Bireysel geliştirme ve uç noktaların hızlı testi için Insomnia, hafifliği ve kayıt gerektirmemesi sayesinde daha kullanışlıdır. Paylaşılan bir koleksiyon, CI/CD entegrasyonu ve üretim API'si izleme ile ekip çalışması için Postman sektör standardı olmaya devam eder.
Insomnia'daki çalışma alanı, klasörlere ayrılmış bir istek ağacı içerir. Her istek HTTP, GraphQL, WebSocket veya gRPC türünde olabilir. Sürükle-bırak, çoğaltma ve isteklerin renkli etiketlerle gruplandırılması desteklenir. Çalışma alanı yapılandırma dosyası JSON formatında saklanır.
Insomnia, üst öğenin değişkenlerini miras alan iç içe ortamları (Sub Environments) destekler. Bu, genel ortamda temel bir URL tanımlamayı ve farklı ortamlar için yalnızca farklı olan parametreleri yeniden tanımlamayı sağlar. Değişkenler {`{`}_variable${`}`} sözdizimiyle değiştirilir.
// Insomnia ortam yapısı örneği
{
"base_url": "https://api.example.com",
"timeout": 5000,
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
}
}
Insomnia, API istemcileri arasında en iyi GraphQL düzenleyicilerinden birini sunar. GraphQL Query sekmesi, yüklenen şemaya dayalı olarak alan otomatik tamamlamayla sorgular yazmanıza olanak tanır. Sağda türler, alanlar ve bağımsız değişkenlerle ilgili dokümantasyon gerçek zamanlı olarak görüntülenir.
Şema, uç noktaya bir GraphQL Introspection isteği aracılığıyla yüklenir. Insomnia şemayı yerel olarak önbelleğe alır ve değişikliklerde otomatik olarak günceller. Yüklemeden sonra otomatik tamamlama (Ctrl+Boşluk), istek doğrulaması ve göndermeden önce olası hataların önizlemesi kullanılabilir hale gelir.
# Insomnia'da değişkenlerle GraphQL sorgusu
query GetUser($id: ID!) {
user(id: $id) {
name
email
posts {
title
createdAt
}
}
}
Insomnia Plugin Hub, istemcinin işlevselliğini genişleten 100'den fazla eklenti içerir. Eklentiler, Preferences → Plugins menüsü aracılığıyla veya npm aracılığıyla manuel olarak kurulur. Popüler kategoriler arasında test verisi üretimi, farklı formatlara dışa aktarma ve özel yanıt doğrulayıcıları yer alır. Her eklenti, genel geliştirici hub'ında yayınlanmadan önce zorunlu moderasyondan geçer.
Eklentiler JavaScript ile yazılır ve şablon API'si (response.*, request.*, environment.*) aracılığıyla Insomnia ile etkileşim kurar. Bir eklenti geliştirmek, Node.js hakkında temel bilgi ve insomnia-plugin etiketli bir npm paketi aracılığıyla yayınlama gerektirir.
Inso CLI, terminalden istekleri ve testleri çalıştırmak için Insomnia'ya yerleşik bir konsol yardımcı programıdır. Inso, tek tek istekleri veya tüm koleksiyonları çalıştırır, sonuçları JSON'a dışa aktarır ve CI/CD boru hatlarına entegre olabilir. inso run collection komutu, bir koleksiyondaki tüm istekleri sırayla yürütür.
Inso CLI, Docker kapsayıcılarında ve başsız modda çalışır ve bu da GitHub Actions ve GitLab CI'de kullanılmasına olanak tanır. Başlatma yapılandırması, dışa aktarılan koleksiyonun ve ortamın yolunu belirten bir YAML dosyasında açıklanır. JavaScript betikleri aracılığıyla durum kodu ve yanıt gövdesi üzerinde doğrulama (assertion) desteklenir.
# Inso CLI ile GitHub Actions iş akışı
- name: Run API tests
run: npx insomnia-inso run collection
--collection "Auth API"
--env "Staging"
--reporter junit
--output reports/api-results.xml
Insomnia, Git aracılığıyla koleksiyon senkronizasyonunu destekler. Koleksiyon dosyaları JSON formatında saklanır ve proje deposuna eklenebilir. Insomnia, değişiklikleri görüntülemek, commit oluşturmak ve birleştirme çakışmalarını doğrudan arayüzden çözmek için yerleşik bir Git istemcisi sağlar.
Git'i bağlamak için bir depo içeren yerel bir klasör oluşturun ve bunu Insomnia ayarlarında kök dizin olarak belirtin. Uygulama, koleksiyon dosyalarındaki değişiklikleri otomatik olarak izler ve bunları Version Control panelinde görüntüler. Standart işlemler desteklenir: commit, push, pull ve sürümler arasında diff görüntüleme.
Git olmayan projeler için Insomnia, Insomnia Cloud aracılığıyla bulut senkronizasyonu sunar. Ücretsiz plan, 3'e kadar ekip üyesini ve koleksiyonların otomatik yedeklenmesini içerir. Ücretli planlar; erişim yönetimi, değişiklik denetimi ve öncelikli destek ekler.
| Senkronizasyon yöntemi | Ücretsiz | Çevrimdışı | Sürüm kontrolü |
|---|---|---|---|
| Git (yerel) | Evet | Evet | Tam (commit, diff, merge) |
| Insomnia Cloud | 3 kullanıcıya kadar | Hayır | Temel (değişiklik geçmişi) |
| Dosya dışa aktarma | Evet | Evet | Manuel (sürüm kontrol sistemi aracılığıyla) |
Insomnia'daki Design Mode, OpenAPI 3.0 formatında API belirtimleri oluşturmanıza olanak tanır. Mod, görsel bir düzenleyici gibi çalışır: YAML'ı elle yazmadan uç noktaları ve veri şemalarını tanımlayın. Belirtim JSON veya YAML olarak dışa aktarılabilir.
Insomnia, OpenAPI belirtimlerini içe aktarır ve her uç nokta için bir istek koleksiyonu oluşturur. Yollar ve şemalar, hazır HTTP isteklerine dönüştürülür. Bu özellik, belirtimin ekibin ayrı bir deposunda saklandığı mikro hizmetlerle entegrasyonda faydalıdır.
Her isteğe renkli bir etiket atanabilir: red, blue, green, orange, purple. Etiketlere göre filtreleme, klasör yapısından bağımsız olarak arama çubuğu aracılığıyla çalışır ve yüzlerce uç nokta ile çok sayıda modüle sahip projelerde gezinmeyi kolaylaştırır.
Insomnia'daki Design Mode, uygulama içinde doğrudan OpenAPI 3.0 formatında API belirtimleri oluşturmanıza olanak tanır. Mod, görsel bir düzenleyici gibi çalışır: YAML'ı elle yazmadan uç noktaları, veri şemalarını ve parametreleri tanımlayın. Belirtim, depolarda yayınlamak için JSON veya YAML olarak dışa aktarılabilir.
Insomnia, mevcut OpenAPI belirtimlerini içe aktarır ve her uç nokta için otomatik olarak bir istek koleksiyonu oluşturur. Yollar ve şemalar, doğru veri türleriyle hazır HTTP isteklerine dönüştürülür. Bu özellik, belirtimin ayrı bir arka uç geliştirme ekibi tarafından saklanıp bakımının yapıldığı mikro hizmetlerle entegrasyonda faydalıdır.
Çok sayıda isteği düzenlemek için Insomnia etiketlemeyi destekler — her isteğe renkli bir etiket atanabilir: red, blue, green, orange, purple. Etiketlere göre filtreleme, klasör yapısından bağımsız olarak arama çubuğu aracılığıyla çalışır ve yüzlerce uç nokta ile çok sayıda işlevsel API modülüne sahip projelerde gezinmeyi kolaylaştırır.
Sık sorulan sorular
Hayır, kayıt zorunlu değildir. Insomnia tamamen çevrimdışı çalışır. Bulut senkronizasyonu ekip çalışması için bir seçenek olarak kullanılabilir, ancak tüm veriler ~/.config/Insomnia/ klasöründeki JSON dosyalarında yerel olarak saklanır.
Postman'den koleksiyonu JSON formatında (Collection v2.1) dışa aktarın. Insomnia'da Import/Export → Import Data → From File seçeneğini seçin. Insomnia, istekleri, başlıkları ve ortam değişkenlerini koruyarak koleksiyonu otomatik olarak dönüştürür.
Evet, 2022 sürümünden itibaren. Insomnia, WebSocket ve Socket.IO protokollerini destekler. WebSocket türünde yeni bir istek oluşturun, URL'yi (ws:// veya wss://) belirtin ve sohbet arayüzü aracılığıyla mesaj gönderin.
Inso CLI, konsoldan koleksiyonları çalıştırmak için Insomnia'nın yerel yardımcı programıdır. Newman, Postman için karşılığıdır. Inso daha hafiftir, ayrı kurulum gerektirmez (Insomnia ile birlikte gelir) ve GraphQL dahil tüm Insomnia istek türlerini destekler.
Evet, Insomnia gRPC sekmesi aracılığıyla gRPC isteklerini destekler. Hizmet tanımını içeren bir .proto dosyası yüklemek gerekir. Yüklemeden sonra Insomnia, kullanılabilir RPC yöntemlerini gösterir ve göndermek için ikili bir Protobuf mesajı üretir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun