Insomnia API istemcisini kullandıysanız, istek göndermek, OpenAPI spesifikasyonları tasarlamak ve testler yazmak için grafiksel bir arayüze sahipsinizdir. Ancak grafiksel araçlar makinenizin sınırlarında durur. Aynı testleri bir CI hattında çalıştırmak istediğinizde veya her çekme isteğinde bir spesifikasyonu denetlemek istediğinizde, terminalde yaşayan bir şeye ihtiyacınız vardır. Bu şey inso'dur.
Bu rehber, inso'nun ne olduğunu, nasıl kurulacağını, günlük olarak kullanacağınız kesin komutları, spesifikasyonlarınızı ve koleksiyonlarınızı nasıl bulduğunu ve sınırlarının nerede ortaya çıktığını açıklamaktadır. Rehberin sonunda inso CLI'ın iş akışınıza uyup uymadığını ve uymuyorsa neye yönelmeniz gerektiğini bileceksiniz.
Düğme
inso nedir?
inso, şu anda Kong tarafından sürdürülen açık kaynaklı API istemcisi Insomnia'nın komut satırı arkadaşıdır. Insomnia'nın kullanıcı arayüzünde yaptığı üç şeyi alır ve onları betiklenebilir hale getirir: testleri çalıştırmak, istek koleksiyonlarını yürütmek ve API spesifikasyonlarını denetlemek. Bu, Insomnia'yı masaüstünüzde ve CI/CD'de istediğiniz otomatik kontroller arasında bir köprü haline getirir.

"inso nedir"in kısa versiyonu: Insomnia'yı açmadan Insomnia işinizi nasıl çalıştıracağınızdır. Onu bir tasarım belgesine veya bir koleksiyona isme göre yönlendirirsiniz ve uygulamanızın zaten bildiği aynı veriler üzerinde yürütür.
inso CLI'yi Yükleme
Birkaç belgelenmiş yolunuz var. Dağıtım şeklinize uygun olanı seçin.
Homebrew, macOS ve Linux'ta en basitidir:
brew install inso
Docker, yerel bir araç zincirini yönetmek istemediğiniz CI çalıştırıcıları için en temiz seçimdir:
docker pull kong/inso:latest
Doğrudan indirme de yapabilirsiniz. Kong, inso CLI dokümantasyon sitesinde Windows, Linux ve macOS zip arşivleri yayınlamaktadır; bu, bir yapı yapıtında sabit bir sürüm istediğinizde kullanışlıdır.
Geçmişte inso, npm üzerinde de insomnia-inso olarak dağıtılıyordu. Bu yol hala mevcut olsa da, belgelenmiş ve önerilen yollar artık Homebrew, Docker ve doğrudan indirmelerdir. Yeni bir şey kuruyorsanız, bunları tercih edin.
Kurulumun çözümlendiğini doğrulayın:
inso --version
Temel inso komutları
inso'nun küçük ve odaklanmış bir yüzeyi vardır. İşte gerçek örneklerle, gerçekten kullanacağınız komutlar.
inso run test
Insomnia'da oluşturduğunuz bir birim testi paketini, belirtilen bir ortama karşı çalıştırın:
inso run test "Payments API tests" --env "Staging"
Paket ve ortam, Insomnia verilerinizde göründükleri gibi, isme göre referans alınır. inso run test komutu, herhangi bir iddia başarısız olursa sıfır olmayan bir kodla çıkar; bu da onu bir CI geçidi olarak kullanılabilir hale getirir.
inso run collection
Bir koleksiyondaki her isteği sırayla, yine belirtilen bir ortama karşı çalıştırın:
inso run collection "Checkout flow" --env "Staging"
Bu, kullanıcı arayüzünde "tüm klasörü oynat"ın en yakın eşdeğeridir. Bir dizi uç noktanın beklendiği gibi yanıt verdiğini doğrulamak istediğiniz duman testleri için kullanışlıdır.
inso lint spec
Bir OpenAPI tasarım belgesini doğrulayın:
inso lint spec "Orders API"
Kulislerde, inso lint spec, Stoplight'tan açık kaynaklı OpenAPI ve JSON denetleyicisi olan Spectral'i kullanır. Bu, açıkça belirtmeye değer gerçek bir güçtür: yüzeysel bir sözdizimi kontrolü değil, olgun bir kural seti ile gerçek, kural tabanlı spesifikasyon denetimi elde edersiniz. Ekibiniz spesifikasyonlar üzerinde stil kılavuzu uygulamasına önem veriyorsa, bu komut birçok kişinin inso'yu el altında tutmasının nedenidir.
inso export spec
Bir tasarım belgesini diskteki bir dosyaya çekin:
inso export spec "Orders API" --output orders.yaml
Spesifikasyonu başka bir jeneratöre beslemek, bir anlık görüntü kaydetmek veya düz bir YAML dosyası bekleyen bir araca vermek istediğinizde kullanışlıdır.
inso script
Insomnia verilerinizde tanımlanmış bir adlandırılmış betiği, kimliğe göre bir ortamı geçirerek çalıştırın:
inso script deploy-smoke --env env_9f2a
Bu, kendi özel adımlarınızı zincirlemek için bir kaçış deliğidir.
inso spesifikasyonlarınızı ve koleksiyonlarınızı nasıl bulur?
Bu, insanların kafasını karıştıran kısımdır, bu yüzden kesin olmakta fayda var. inso kendisi hiçbir şey depolamaz. İki yerden birinden okur:
- Çalışma dizininizdeki bir
.insomniadizini. Bu, Insomnia'nın Git Senkronizasyonu'nun ürettiği şeydir, bu yüzden API projenizi bir depoya kaydettiğinizde, inso onu doğrudan check-out'tan okuyabilir. Bu, CI için istediğiniz desendir. - Uygulama makineye kuruluysa, Insomnia uygulama veri dizini. Bu yerel olarak kullanışlıdır ancak uygulamayı hiç yüklememiş temiz bir CI çalıştırıcısında işe yaramaz.
Kaynağı açıkça geçersiz kılabilirsiniz:
inso lint spec "Orders API" --workingDir ./api-project
# veya tam bir kaynağı işaret edin
inso run test "Payments API tests" --src ./api-project/.insomnia
Temel zihinsel model: inso her şeyi isme (veya kimliğe) göre referans alır ve bu isimler, bulduğu veri kaynağına göre çözümlenir. Bir isim .insomnia dizininde veya uygulama verilerinde yoksa, inso onu çalıştıramaz. inso'yu gevşek bir OpenAPI dosyasına yönlendirip "bunu test et" deme kavramı yoktur, tabii ki o dosya bir Insomnia proje yapısı içinde yaşamıyorsa.
Minimal bir CI örneği
İşte, Git senkronize .insomnia dizinini depoya kaydederek, her push işleminde bir spesifikasyonu denetleyen ve bir test paketini çalıştıran bir GitHub Actions işi:
name: API checks
on: [push]
jobs:
inso:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install inso
run: |
curl -sSL https://github.com/Kong/insomnia/releases/latest/download/inso-linux-x64.zip -o inso.zip
unzip inso.zip && sudo mv inso /usr/local/bin/
- name: Lint the spec
run: inso lint spec "Orders API" --workingDir .
- name: Run the test suite
run: inso run test "Payments API tests" --env "CI" --workingDir .
Her iki komut da başarısızlık durumunda sıfır olmayan bir kodla çıktığı için, bozuk bir spesifikasyon veya başarısız bir iddia işi başarısız kılar. Bu kontrolleri GUI'den çıkarmanın tüm amacı budur.
Dürüst sınırlamalar
inso işini iyi yapar, ancak gerçek sınırlara sahiptir.
Insomnia'nın veri kaynaklarına bağlıdır. Spesifikasyonlarınız, koleksiyonlarınız ve paketleriniz, ya Git Senkronizasyonu ya da yüklü uygulama aracılığıyla ortaya çıkarılan bir Insomnia projesinde yaşamalıdır. Ekibiniz Insomnia'yı doğruluk kaynağı olarak kullanmıyorsa, inso'nun üzerinde çalışacak hiçbir şeyi yoktur.
Her şey isme göre referans alınır. Bu okunabilir, ancak kırılgandır. Kullanıcı arayüzünde bir paketin adını değiştirirseniz, eski adı sabit kodlayan bir CI işi, bir sonraki çalışmaya kadar sessizce bozulur. Adların da düzgün bir şekilde çözümlenecek kadar benzersiz olması gerekir.
Kapsam tasarım gereği dardır. inso testleri çalıştırır, koleksiyonları çalıştırır, spesifikasyonları denetler, dışa aktarır ve betikleri çalıştırır. Bir tasarım-taklit-belge-test platformu değildir. Bu eylemlerin ötesindeki her şey için tekrar GUI'ye dönersiniz veya başka araçlara uzanırsınız.
inso vs entegre alternatif
inso, Insomnia zaten istemciniz olduğunda güçlü bir terminal arkadaşıdır. Dezavantajı, parçaları bir araya getiriyor olmanızdır: tasarım ve hata ayıklama için Insomnia, CI için inso, denetim için Spectral kuralları ve taklitler ve belgeler için ayrı araçlar.

Apidog ise tam tersi bir duruş sergiler. Tasarım, taklit, dokümantasyon ve test işlemlerini tek bir platformda bir araya getirir ve Apidog CLI, test senaryolarınızı ve koleksiyonlarınızı aynı doğruluk kaynağından, veri odaklı test, çoklu raporlayıcı formatları ve kod olarak kaynak ve dal özellikleri ile çalıştırır. Burada adil olmak gerekirse: Apidog CLI, inso'nun Spectral ile yaptığı gibi bağımsız bir spesifikasyon denetleyicisi sunmaz, bu nedenle Spectral tarzı stil kılavuzu uygulamanız önceliğiniz ise, inso'nun burada gerçek bir avantajı vardır. Apidog'un öne çıktığı nokta entegrasyondur. Beş aracı birbirine yapıştırmıyorsunuz.
İkisini kafa kafaya karşılaştırmak isterseniz, Apidog CLI vs inso (Insomnia CLI) makalesine bakın veya inso (Insomnia CLI) nedir başlıklı yazıda daha derin arka planı okuyun. inso'nun doğru yer olmadığına karar verdiyseniz, en iyi inso alternatifi özeti ve inso'dan Apidog CLI'a geçiş rehberi adımı adım açıklıyor. GUI istemcilerinin kendileri hakkında daha geniş bir bağlam için, Apidog vs Insomnia ve Insomnia ile API nasıl test edilir iyi başlangıç noktalarıdır.
inso kurulumunuzla entegre yaklaşımı yan yana görmek isterseniz Apidog'u ücretsiz indirebilirsiniz.
