Terminalde yaşıyorsanız ancak curl'ün sözdizimini karmaşık ve ham çıktısını okuması zor buluyorsanız, curlie'yi bilmek faydalıdır. Bu, curl'ü saran ve HTTPie'nin daha kullanıcı dostu sözdizimini ve renklendirilmiş çıktısını ödünç alan küçük bir komut satırı HTTP istemcisidir; böylece curl'ün gücünden vazgeçmeden okunabilir yanıtlar alırsınız. Bu kılavuz, curlie'nin ne olduğunu, nasıl kurulup kullanılacağını, curl ve HTTPie ile nasıl ilişkilendiğini ve geçici terminal çağrılarından kaydedilmiş, tekrarlanabilir bir iş akışına ne zaman geçilmesi gerektiğini açıklamaktadır.
curlie aslında nedir?
curlie, curl için bir ön uçtur. HTTP'yi yeniden uygulamaz. Daha basit, HTTPie tarzı bir komutu ayrıştırır, eşdeğer curl çağrısını oluşturur ve asıl isteği makinenizdeki curl ikili dosyasına devreder. Sonuç, sözdizimi vurgulaması ve düzgün biçimlendirilmiş JSON ile geri döner.

Bu tasarım seçimi önemlidir. curl ağ işlemlerini yaptığı için, curlie, curl'ün protokol desteğini, TLS yönetimini, proxy davranışını ve zaten bildiğiniz bayrakları miras alır. Herhangi bir yerel curl bayrağını doğrudan geçirebilirsiniz. curlie sadece yaygın durum olan bir istek göndermeyi ve yanıtı okumayı çok daha az zahmetli hale getirir.
Proje, GitHub'da sürdürülen tek bir Go ikili dosyası olarak dağıtılır. Kurulacak bir çalışma zamanı, Python ortamı veya eklenti yoktur. İkili dosyayı PATH'inize bırakırsınız ve hazırsınızdır.
Basitçe söylemek gerekirse: curlie, terminal için etkileşimli, özel bir HTTP istemcisidir. Bir uç noktayı kurcalamak, bir yanıtı incelemek ve yolunuza devam etmek istediğinizde ona başvurursunuz. Bir test çalıştırıcısı değildir ve öyle olmaya çalışmaz.
İnsanlar neden kullanıyor?
curl her yerdedir, ancak çıktısı ham baytları ekranınıza döker. JSON tek bir biçimlendirilmemiş satır olarak gelir. Bayraklar eklemediğiniz sürece başlıklar ve gövde birbirine karışır. HTTPie, temiz bir sözdizimi ve renkli çıktı ile okunabilirlik sorununu çözdü, ancak kendi davranışları ve bağımlılıkları olan ayrı bir Python aracıdır.
curlie ikisinin arasında yer alır. HTTPie'nin ergonomisini, altında curl motoruyla elde edersiniz. Geliştiricilerin sevmesinin birkaç nedeni:
- Varsayılan olarak okunabilir. Yanıtlar renkli olarak, JSON düzgün bir şekilde biçimlendirilmiş ve başlıklar açıkça ayrılmış olarak gelir.
- Tanıdık sözdizimi. Başlıkları, sorgu parametrelerini ve JSON alanlarını ayarlamak, yığılmış
-Hve-dbayrakları yerine kompakt HTTPie stilini kullanır. - Altında curl. Herhangi bir curl bayrağı çalışır. curl'ü biliyorsanız, curlie'nin çoğunu zaten biliyorsunuzdur.
- Sıfır bağımlılık. Tek bir statik ikili dosya. İkili dosyanın kendisi dışında güncel tutulacak hiçbir şey yok.
- Ayrıntılı mod curl çağrısını gösterir.
-vile çalıştırın ve başlıkları ve temel isteği görebilirsiniz, bu da onu iyi bir öğretim aracı yapar.
curlie'yi kurma
curlie, önceden derlenmiş bir ikili dosya olarak ve yaygın paket yöneticileri aracılığıyla dağıtılır. Kesin komutlar zamanla değiştiğinden, güncel yöntem için GitHub sürüm sayfasını kontrol edin, ancak tipik yollar şunlar gibidir.
Homebrew yüklü macOS'ta:
brew install curlie
Go yüklüyken:
go install github.com/rs/curlie@latest
Veya platformunuz için ikili dosyayı sürüm sayfasından indirin ve PATH'inize taşıyın:
# örnek: indirilen ikili dosyayı PATH üzerinde bir yere yerleştirin
mv curlie /usr/local/bin/
curlie --version
curlie onu çağırdığı için sistemde curl'ün bulunması gerekir. macOS ve çoğu Linux dağıtımında curl zaten mevcuttur.
Temel kullanım
HTTPie kullandıysanız sözdizimi tanıdık gelecektir. Bir GET isteği, URL kadar kısadır:
curlie httpbin.org/get
curlie, bir yöntem belirtmediğinizde GET varsayar ve şemayı atlarsanız http://'yi ekler. Yanıt, renkli başlıklar ve biçimlendirilmiş JSON ile yazdırılır.
JSON göndermek için key=value çiftlerini kullanın. curlie, Content-Type: application/json başlığını ayarlar ve gövdeyi sizin için oluşturur:
curlie POST httpbin.org/post name=apidog role=platform
Bu, istek gövdesi olarak {"name": "apidog", "role": "platform"} gönderir. Header:value formuyla bir başlık ve param==value ile bir sorgu parametresi ekleyin:
curlie GET httpbin.org/get \
Authorization:"Bearer token123" \
search==apidog
curl altında çalıştığı için, kısa sözdizimi yeterli olmadığında istediğiniz zaman yerel bayrakları karıştırabilirsiniz:
curlie -v --max-time 5 httpbin.org/get
-v bayrağı bir alışkanlık olmaya değerdir. İsteği ve yanıt başlıklarını yazdırır, böylece tam olarak neyin gönderildiğini onaylayabilirsiniz. Temel araç hakkında daha derin bir tazeleme isterseniz, curl REST API kılavuzu, curlie'nin sardığı ham bayrakları kapsar.
curlie vs curl vs HTTPie
Üçü de terminalden HTTP istekleri gönderir. Fark, sözdizimi, çıktı ve arka planda neyin çalıştığındadır.
| Özellik | curl | HTTPie | curlie |
|---|---|---|---|
| Motor | libcurl | Python (requests tarzı) | curl (sarıcı) |
| Sözdizimi | Bayrak ağırlıklı (-X, -H, -d) |
Kompakt (key=value) |
Kompakt, HTTPie tarzı |
| Çıktı | Ham, biçimlendirilmemiş | Renklendirilmiş, düzgün JSON | Renklendirilmiş, düzgün JSON |
| Kurulum | Neredeyse her yerde önceden yüklü | Python paketi | Tek Go ikili dosyası |
| Yerel curl bayrakları | Evet | Hayır | Evet (doğrudan geçiş) |
| Bağımlılıklar | Yok | Python çalışma zamanı | curl ikili dosyası |
| Geliştirildiği amaç | Betik oluşturma ve anlık çağrılar | Kullanıcı dostu anlık çağrılar | Kullanıcı dostu anlık çağrılar |
Dürüst özet: HTTPie ve curlie, aynı okunabilirlik ve ergonomi sorununu farklı şekillerde çözer. HTTPie, kendi özellik setine sahip Python'da tam bir yeniden uygulamadır. curlie, sizi curl üzerinde tutan ince bir sarmalayıcıdır. Ekibiniz curl bayraklarını standartlaştırıyorsa veya her curl seçeneğine doğrudan erişim istiyorsanız, curlie tam uyar. HTTPie'nin daha geniş özellik yüzeyini tercih ediyorsanız ve Python bağımlılığını sorun etmiyorsanız, HTTPie iyi bir seçimdir. HTTPie eğitimimiz bu aracı derinlemesine ele alır ve birini diğerine karşı değerlendiriyorsanız, curl'den HTTPie'ye karşılaştırma, her ikisindeki sözdizimini eşler.
Bu üçünün ötesindeki terminal ve GUI seçeneklerine daha geniş bir bakış için, REST API testi için curl alternatifleri özetimize bakın.
curlie ne zaman doğru araçtır ve ne zaman değildir?
curlie, hızlı, etkileşimli işler için parlar:
- Bir uç noktanın çalışıp çalışmadığını ve beklediğiniz şekli döndürüp döndürmediğini kontrol etmek.
- JSON yanıtını okumak için
jqüzerinden yönlendirmeden gözle kontrol etmek. - Geliştirme sırasında başlıkları ve kimlik doğrulamayı hata ayıklamak.
-vgerçek isteği gösterdiğinden HTTP'yi öğretmek veya tanıtmak.
Yardım etmeyi bıraktığı yer, tekrarlanması, paylaşılması veya otomatik olarak doğrulanması gereken her şeydir. curlie'nin kaydedilmiş istek kavramı yoktur. Staging ve üretim arasında geçiş yapılacak ortamlar yoktur. Bir durum kodunun 200 olduğunu veya bir alanın beklenen bir değere eşit olduğunu kontrol edecek iddialar yoktur. İş hattınızda sabah 3'te bir şeyler bozulduğunda bir rapor yoktur.
Bu curlie'yi kötülemek değildir. Bu, anlık işleri iyi yapan anlık bir araçtır. Ancak kendinizi aynı curlie komutunu bir belgeye yapıştırırken veya elle yazılmış grep kontrolleriyle bir kabuk betiğine kopyalarken bulduğunuz an, etkileşimli bir istemcinin yapması gerekenin ötesine geçmişsiniz demektir.
Yükseltme yolu: tek seferlik çağrılardan kaydedilmiş, tekrarlanabilir bir iş akışına
İş akışının doğal olarak bölündüğü yer burasıdır. Keşif için curlie kullanmaya devam edin. Bir isteğin bir yerde yaşaması, yeniden kullanılması veya CI'da çalıştırılması gerektiğinde, onu bunun için oluşturulmuş bir platforma taşıyın.

Apidog, tam da bu geçiş için kalıcılık ve işbirliği katmanıdır. curlie için tak-çalıştır bir terminal yedeği değildir; terminalden sonraki adımdır. Apidog ile şunları yapabilirsiniz:
- Kabuk geçmişini yeniden yazmak veya aramak yerine istekleri düzenli koleksiyonlara kaydedin.
- Aynı isteğin bir değişkeni değiştirerek yerel, staging ve üretim ortamlarında çalışmasını sağlamak için ortamları yönetin.
- Manuel bir göz kontrolünü otomatik birine dönüştüren durum kodlarını, yanıt alanlarını ve şemayı kontrol eden iddialar ekleyin.
- Kaydedilmiş test senaryolarınızı bir işlem hattında yürüten ve başarılı veya başarısız olduğunu rapor eden komut satırı çalıştırıcısı
apidog runile testleri CI'da çalıştırın. - İşbirlikçi bir çalışma alanı aracılığıyla ekibinizle paylaşın, böylece bir kez hata ayıkladığınız bir istek herkesin yeniden kullanabileceği bir şey haline gelir.
Pratik bir kalıp: Bir uç noktayı anlayana kadar curlie ile keşfedin, ardından iddialarla birlikte Apidog'da kaydedilmiş bir istek olarak yeniden oluşturun. Keşif hızlı ve tek kullanımlık kalır. Doğrulama kalıcı ve otomatik hale gelir. Ekibinizin uç noktaları nasıl doğruladığını resmileştiriyorsanız, API testi kılavuzu iddiaların ve test senaryolarının arkasındaki kavramları kapsar.
Sıkça Sorulan Sorular
curlie, curl'ün yerine geçer mi?
Tam olarak değil. curlie, curl'ün üzerinde çalışır, bu yüzden bir yedek olmaktan çok daha kullanıcı dostu bir ön kapıdır. Kompakt bir sözdizimini curl çağrılarına çevirir ve çıktıyı biçimlendirir. curl'ün kendisi motor olarak kalır ve her yerel curl bayrağı curlie aracılığıyla hala çalışır.
curlie, CI/CD işlem hatlarında çalışır mı?
curlie'yi bir betik içinde çağırabilirsiniz, ancak otomatik test için tasarlanmamıştır. Hiçbir iddiası, kaydedilmiş test senaryosu ve yapılandırılmış raporu yoktur. İşlem hattı çalışmaları için, yanıtları kontrol eden ve bir şeyler yanlış gittiğinde yapıyı başarısız eden bir çalıştırıcıya ihtiyacınız vardır. Apidog'un apidog run komutu bu rolü doldurur ve en iyi API test istemcileri listemiz tekrarlanabilir, CI dostu testler için diğer seçenekleri kapsar.
curlie, HTTPie'den nasıl farklıdır?
curlie, HTTPie'nin sözdizimini ve renklendirilmiş çıktısını kopyaladığı için benzer hissederler. Fark motordadır. HTTPie, kendi uygulamasına sahip bağımsız bir Python aracıdır. curlie, curl etrafında ince bir Go sarmalayıcıdır, bu nedenle curl'ün davranışını miras alır ve curl bayraklarını doğrudan kabul eder. curl üzerinde kalmak istiyorsanız curlie'yi seçin; bağımsız özellik setini tercih ediyorsanız HTTPie'yi seçin.
curlie'nin çalıştırdığı gerçek curl komutunu görebilir miyim?
Evet. curlie'yi -v (ayrıntılı) bayrağıyla çalıştırın, istek ve yanıt başlıklarını ve temel istek ayrıntılarını yazdırır. curl bayraklarını öğrenmek veya tam olarak neyin gönderildiğini onaylamak için kullanışlı bir yoldur.
Sonuç
curlie akıllı küçük bir araçtır: HTTPie'nin okunabilir sözdizimi ve renkli çıktısı, gerçek işi altta yapan curl ile. Uç noktaları kurcalamak, JSON yanıtlarını okumak ve terminalde kimlik doğrulamayı hata ayıklamak için, ham curl'e göre gerçekten yaşam kalitesini artıran bir yükseltmedir. Sadece ne olduğunu unutmayın. Bu etkileşimli bir istemcidir, bir test çalıştırıcısı değildir.
İsteklerinizin kaydedilmesi, paylaşılması, doğrulanması ve CI'da çalıştırılması gerektiğinde, bu bir katman yukarı çıkma sinyalidir. Terminalde keşfettiğiniz uç noktaları, tüm ekibinizin güvenebileceği kaydedilmiş isteklere, ortamlara ve otomatik testlere dönüştürmek için Apidog'u indirin. Hızlı işler için curlie'yi saklayın ve tekrarlanması gereken işleri Apidog'a bırakın.
