Çoğu API istemcisinde koleksiyonlar, ekibinizin tam olarak kontrol edemediği bir bulut çalışma alanında yaşar. Bu istekleri Git’te karşılaştıramaz, pull request içinde inceleyemez veya bir özellik dalı gibi dallandıramazsınız. İki kişi aynı koleksiyonu düzenlediğinde çoğu zaman “son kaydeden kazanır”. Git-yerel API istemcileri, istekleri deponuzda düz dosyalar olarak saklayarak bu problemi çözer.
Git-yerel veya Git dostu bir API istemcisi, koleksiyonları kaynak kod gibi ele alır: commit edilebilir, diff alınabilir, branch açılabilir, merge edilebilir ve review yapılabilir metin dosyaları. Böylece API koleksiyonunuz paylaşılan değiştirilebilir bir “blob” olmaktan çıkar; geçmişi olan, incelenebilir bir yapıta dönüşür. Aynı dosyalar CI’da da çalıştırılabildiği için ayrıca export alma adımı gerekmez.
Bu rehberde 2026 için öne çıkan Git-yerel ve Git dostu API istemcilerini pratik açıdan karşılaştırıyoruz. Hepsi bir arada seçenek olan Apidog ile başlayıp Bruno, Insomnia, Hoppscotch, Step CI, Hurl ve Postman’a bakacağız. Daha geniş iş akışı için Git-yerel API iş akışı rehberine de göz atabilirsiniz.
Özet: En iyi Git-yerel API istemcileri
- Apidog: Hepsi bir arada en güçlü seçenek. İstekler, OpenAPI spesifikasyonu, testler, mock’lar ve dokümanlar tek projeden Git’e senkronize olur.
-
Bruno: En saf Git-yerel istemci. Koleksiyonlar bulut gerektirmeyen düz
.brudosyalarıdır. - Insomnia: Tanıdık bir istemciye Git Senkronizasyonu ekler.
- Hoppscotch: Açık kaynaklı ve kendi kendine barındırılabilir seçenektir.
- Step CI ve Hurl: Pipeline’larda çalışmak üzere tasarlanmış metin öncelikli araçlardır.
- Postman: Güçlü bir ekosisteme sahip olsa da bulut önceliklidir; gerçek dosya tabanlı Git akışı için sınırlıdır.
Temel kontrol şudur: Koleksiyon deponuzda bir dosya değilse, gerçek anlamda sürüm kontrolünde değildir.
Bir API istemcisini “Git-yerel” yapan nedir?
Bir aracın GitHub entegrasyonundan bahsetmesi yeterli değildir. Git-yerel iş akışı için şu kriterleri kontrol edin:
- Dosya tabanlı koleksiyonlar: İstekler okunabilir metin, YAML, JSON veya belgelenmiş bir format olarak saklanır.
- Bulut bağımlılığı yok: Dosyalar koleksiyonun kendisidir; paylaşmak için satıcı bulutuna zorunlu olarak ihtiyaç duyulmaz.
- Branch ve merge desteği: Her özellik için dal açabilir, çakışmaları kod dosyalarında olduğu gibi çözebilirsiniz.
- CI’da çalıştırılabilirlik: Aynı dosyaları pipeline içinde çalıştıran bir CLI veya runner bulunur.
- Çevrimdışı öncelikli kullanım: İstemci, dosyalar diskte olduğu sürece çalışabilir.
Basit bir Git-yerel API klasör yapısı şöyle olabilir:
repo/
api/
collections/
users/
payments/
environments/
local.env
staging.env
src/
.github/
workflows/
api-tests.yml
Pratik hedef: API isteği, API kodu ve API testi aynı pull request içinde incelenebilmelidir.
En iyi Git-yerel ve Git dostu API istemcileri
1. Apidog: Deponuzda yaşayan hepsi bir arada çözüm
Apidog, yalnızca istekleri değil, API yaşam döngüsünün tamamını sürüm kontrolüne yaklaştırdığı için listenin başında yer alıyor. İstekler, OpenAPI spesifikasyonu, test senaryoları, mock tanımları ve dokümanlar aynı projede tutulur ve Git ile senkronize edilebilir.
Bir endpoint değiştiğinde sadece request değil; ilgili sözleşme, test ve dokümantasyon da aynı değişikliğin parçası olur. Bu, pull request review sürecini daha güvenilir hale getirir.
Git dostu bir istemci ile Git-yerel API iş akışı arasındaki fark burada ortaya çıkar. Sadece request-first bir istemci, isteklerinizi sürümlendirir. Apidog ise isteğin arkasındaki API sözleşmesini de iş akışına dahil eder.
Git entegrasyonu ve senkronizasyonu, GitHub, GitLab ve kendi kendine barındırılan Git sunucularıyla çalışır. Branch desteği sayesinde ekipler yeni API sürümlerini merge etmeden önce izole biçimde geliştirebilir. Request-first ve design-first yaklaşımlar arasındaki farkı görmek için Bruno: istek odaklı vs. tasarım odaklı karşılaştırmasına bakabilirsiniz.
Ne zaman seçilmeli?
- API sözleşmesi, testleri ve dokümanları birlikte sürümlemek istiyorsanız.
- API değişikliklerinin tek pull request içinde incelenmesini istiyorsanız.
- Sadece koleksiyon değil, uçtan uca API yaşam döngüsü yönetimi istiyorsanız.
Kurumsal açıdan farkları görmek için Kurumsal yönetişim için Bruno vs Apidog yazısına bakabilirsiniz.
2. Bruno: En saf Git-yerel istemci
Bruno, Git-yerel API istemcisi denince akla gelen en net örneklerden biridir. Her istek, sizin kontrol ettiğiniz klasörde duran düz metin .bru dosyasıdır. Zorunlu bulut hesabı veya senkronizasyon sunucusu gerekmez.
Bu modelin avantajı basittir:
git checkout -b feature/new-user-endpoint
# Bruno ile isteği düzenle
git diff
git add api/users/create-user.bru
git commit -m "Add create user API request"
git push
İstek dosyası düz metin olduğu için ekip arkadaşınız pull request içinde hangi header’ın, body alanının veya assertion’ın değiştiğini görebilir.
Bruno tasarımı gereği çevrimdışı önceliklidir ve CI çalıştırmaları için CLI sunar. Tek gereksiniminiz “isteklerim depomdaki dosyalar olsun” ise Bruno çok temiz bir çözümdür.
Dezavantajı kapsamdır. Bruno odaklanmış bir istemcidir; dokümantasyon, mock servisler ve API tasarım süreci başka araçlarda yaşar. Ekiplerin bu sınırı ne zaman aştığını Hepsi bir arada Bruno alternatifi yazısında görebilirsiniz.
Ne zaman seçilmeli?
- Bulutsuz, dosya öncelikli bir istemci istiyorsanız.
- API yaşam döngüsünün tamamına değil, request koleksiyonlarına odaklanıyorsanız.
- Git diff ve merge sizin için birincil gereksinimse.
3. Insomnia: Git Senkronizasyonlu tanıdık bir istemci
Insomnia, birçok geliştiricinin alışkın olduğu cilalı API istemcisi deneyimini korurken Git Senkronizasyonu ekler. Bu sayede koleksiyonlar ve ortamlar bir depoda saklanabilir, branch’lenebilir ve ekip içinde paylaşılabilir.
Insomnia, tamamen dosya-öncelikli araçlar kadar saf Git-yerel değildir; ancak mevcut Insomnia kullanıcıları için pratik bir geçiş yoludur. İstemci değiştirmeden daha iyi sürüm kontrolü isteyen ekipler için mantıklı bir orta noktadır.
İş akışını daha detaylı görmek için Insomnia API testi kılavuzu incelenebilir.
Ne zaman seçilmeli?
- Insomnia arayüzünü zaten kullanıyorsanız.
- Koleksiyonları depo destekli hale getirmek istiyorsanız.
- Tam yaşam döngüsü platformuna geçmeden Git entegrasyonu istiyorsanız.
4. Hoppscotch: Açık kaynak ve kendi kendine barındırılabilir
Hoppscotch, hafif, açık kaynaklı ve kendi kendine barındırılabilir bir API istemcisidir. Özellikle her şeyi kendi altyapısında tutmak isteyen ekipler için uygundur.
Koleksiyonlar dosyalara aktarılabilir ve CLI ile CI ortamında çalıştırılabilir. Bu sayede açık kaynak ve şeffaf kalırken sürüm kontrollü bir API test akışına dahil edilebilir.
Kendi kendine barındırma, üçüncü taraf bulut risklerini azaltmak isteyen ekipler için önemli olabilir. Bu konu GitHub ihlali sonrası kendi kendine barındırılan API araçları yazısında daha detaylı ele alınmıştır.
Ne zaman seçilmeli?
- Açık kaynaklı ve kendi kendine barındırılabilir bir istemci istiyorsanız.
- Üçüncü taraf bulut bağımlılığını azaltmak istiyorsanız.
- Basit, hafif ve maliyetsiz bir çözüm arıyorsanız.
5. Step CI ve Hurl: Pipeline’lar için metin öncelikli istemciler
Step CI ve Hurl, klasik GUI istemcilerden farklı çalışır. Burada birincil yapı test dosyasıdır; araçlar özellikle CI/CD içinde çalışmak üzere tasarlanmıştır.
Step CI, API kontrollerini YAML iş akışları olarak tanımlar. Bu dosyalar kodunuzun yanında durur ve her push işleminde çalıştırılabilir.
Örnek yapı:
version: "1.1"
name: API smoke test
env:
host: https://api.example.com
tests:
users:
steps:
- name: Get users
http:
url: ${{ env.host }}/users
method: GET
check:
status: 200
Hurl ise istekleri ve assertion’ları düz metin formatında tanımlar:
GET https://api.example.com/users
HTTP 200
[Asserts]
jsonpath "$[0].id" exists
Her iki araç da varsayılan olarak Git-yereldir, çünkü dosyanın kendisi doğruluk kaynağıdır.
Ne zaman seçilmeli?
- API kontrollerini kod olarak tanımlamak istiyorsanız.
- GUI keşfinden çok CI doğrulamasına önem veriyorsanız.
- Pipeline içinde küçük, hızlı ve metin tabanlı testler çalıştırmak istiyorsanız.
6. Postman: Yetenekli ama bulut öncelikli
Postman, API istemcisi ekosisteminde güçlü bir araçtır; ancak Git-yerel yaklaşım açısından kontrast olarak değerlendirilmelidir. Koleksiyonlar çoğunlukla bulut çalışma alanında yaşar. Git erişimi yerel dosya depolama yerine entegrasyonlar üzerinden sağlanır.
Bir Postman koleksiyonunu JSON olarak dışa aktarabilirsiniz; fakat bu genellikle anlık görüntüdür. Deponuzda yaşayan, sürekli değişen ve review edilen bir dosya ile aynı şey değildir.
Bu yüzden dosya tabanlı gerçek sürüm kontrolü isteyen ekipler için Postman çoğu zaman başlangıç noktasıdır, varış noktası değil. Alternatifler için en iyi Postman alternatifleri rehberine bakabilirsiniz.
Ne zaman seçilmeli?
- Postman ekosistemi sizin için dosya tabanlı Git akışından daha önemliyse.
- Bulut çalışma alanı modelini sorun olarak görmüyorsanız.
- Ekip zaten Postman üzerinde standardize olduysa.
Git-yerel API istemcilerinin karşılaştırılması
| İstemci | Koleksiyonları şu şekilde depolar | Bulut gerekli mi? | Dallandırma/Birleştirme | CI için CLI | Hepsi bir arada |
|---|---|---|---|---|---|
| Apidog | Proje dosyaları + OpenAPI | Hayır (Git senkronizasyonu) | Evet | Evet | Evet |
| Bruno |
.bru metin dosyaları |
Hayır | Evet | Evet | Hayır |
| Insomnia | Koleksiyon dosyaları (Git Senkronizasyonu) | İsteğe bağlı | Evet | Evet | Hayır |
| Hoppscotch | Dışa aktarılan dosyalar | Hayır (kendi kendine barındırılır) | Dosyalar aracılığıyla | Evet | Hayır |
| Step CI | YAML iş akışları | Hayır | Evet | Evet | Hayır |
| Hurl | Düz metin dosyaları | Hayır | Evet | Evet | Hayır |
| Postman | Bulut çalışma alanı | Evet | Sınırlı | Evet | Kısmi |
Dosya tabanlı koleksiyonlar neden daha pratiktir?
Dosya tabanlı koleksiyonların değeri, API üzerinde birden fazla kişi çalışmaya başladığında ortaya çıkar.
1. Request değişikliği review edilebilir
Bir .bru, YAML, JSON veya proje dosyasındaki diff şunu gösterebilir:
- Authorization: Bearer {{old_token}}
+ Authorization: Bearer {{api_token}}
- POST /users
+ POST /v2/users
Bu değişiklik pull request içinde incelenebilir. Bulut çalışma alanında ise değişiklik çoğu zaman sonradan fark edilir.
2. Her özellik için branch açabilirsiniz
Yeni endpoint geliştirme akışı şöyle olabilir:
git checkout -b feature/add-payment-refund-api
# API kodunu değiştir
# API request/test dosyasını değiştir
git add src/ api/
git commit -m "Add refund API and request coverage"
Bu yaklaşım, kod olarak spesifikasyon modeliyle uyumludur.
3. Geçmiş Git tarafından tutulur
Kimin hangi endpoint’i, hangi header’ı veya hangi test assertion’ını değiştirdiği Git geçmişinden görülebilir. Ayrı bir audit log oluşturmanız gerekmez.
4. CI aynı dosyaları çalıştırır
Ekip tarafından düzenlenen dosyalar ile pipeline’ın çalıştırdığı dosyalar aynı olur. Bu, export alma ve daha sonra drift oluşması riskini azaltır.
Bulut istemcisinden Git-yerel istemciye geçiş
Postman gibi bulut öncelikli bir istemciden Git-yerel akışa geçiş genellikle adım adım yapılabilir.
1. Mevcut koleksiyonları dışa aktarın
İlk adım olarak mevcut koleksiyonları ve ortamları JSON olarak dışa aktarın. Bu dosyaları nihai kaynak olarak değil, geçiş anlık görüntüsü olarak düşünün.
2. Yeni istemciye içe aktarın
Bruno, Apidog, Insomnia ve Hoppscotch ortak koleksiyon formatlarını ve OpenAPI tanımlarını okuyabilir. Apidog, Postman koleksiyonlarını doğrudan içe aktarır; bu da geçiş süresini kısaltır.
3. Dosyaları depoya commit edin
İçe aktarılan koleksiyonu test ettiği servisin yanına koyun:
service-users/
src/
api/
collections/
environments/
Sonra commit edin:
git add api/
git commit -m "Add API collection to repository"
4. Gizli bilgileri dosyalardan çıkarın
API anahtarlarını, token’ları veya production credential’larını commit etmeyin. Dosyada yalnızca değişken adları kalsın:
Authorization: Bearer {{API_TOKEN}}
Gerçek değerleri ortam değişkenlerinden veya secret manager’dan okuyun. Bu konu için API anahtarı güvenliği notları doğrudan uygulanabilir.
5. CI adımı ekleyin
Kullandığınız aracın CLI runner’ını pipeline’a ekleyin. Örnek GitHub Actions yapısı:
name: API checks
on:
pull_request:
push:
jobs:
api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run API collection
run: |
echo "Buraya seçtiğiniz istemcinin CLI komutunu ekleyin"
Amaç, API koleksiyonunun sadece depoda durması değil, her push işleminde test edilmesidir.
6. Branch-per-change modelini benimseyin
API isteği değişikliğini kod değişikliği gibi ele alın:
- Branch açın.
- Request/test dosyasını değiştirin.
- Pull request açın.
- Diff’i inceleyin.
- CI sonucunu kontrol edin.
- Merge edin.
Git-yerel’e geçerken yapılan yaygın hatalar
Gizli bilgileri commit etmek
Canlı API anahtarını depoya push etmek en kritik hatalardan biridir. İlk günden itibaren secret yönetimi kullanın.
JSON export dosyasını sürüm kontrolü sanmak
Tek seferlik export bir yedektir. Bulutta düzenlemeye devam edip ara sıra export alıyorsanız gerçek Git-yerel iş akışı kurmamış olursunuz.
Tek devasa koleksiyon dosyası kullanmak
Büyük tek dosyalar merge conflict üretir ve diff okumayı zorlaştırır. İstekleri servis veya domain bazlı klasörlere ayırın.
api/
users/
billing/
auth/
notifications/
CLI çalıştırmamak
Dosyalar CI’da çalışmıyorsa Git-yerel akışın en büyük avantajını kaçırırsınız. Runner’ı erken ekleyin.
İsimlendirme kuralı olmaması
Klasör ve istek adları için standart belirleyin. Ekip büyüdükçe düzensiz koleksiyonlar review sürecini yavaşlatır.
İsteklerinizi Apidog ile Git’e taşıyın
Testleri, mock’ları ve dokümanları bırakmadan dosya tabanlı istekler istiyorsanız, hepsi bir arada bir çözüm daha pratiktir. Apidog bu akışı tek projede toplar:
- Projeyi GitHub, GitLab veya kendi kendine barındırılan Git ile senkronize edin.
- Her özellik için branch açın ve API değişikliğini merge öncesi izole geliştirin.
- CLI’yı CI’da çalıştırın ve request değişikliklerini pull request sürecine dahil edin.
- Aynı spesifikasyondan dokümanlar ve mock’lar oluşturun, böylece API sözleşmesi ile çıktıların drift etmesini azaltın.
Tek proje; isteği, sözleşmeyi, testi ve dokümanı birlikte tuttuğu için reviewer tüm API değişikliğini tek diff içinde görebilir. Koleksiyonlarınızı kodunuzla birlikte depoya taşımak için Apidog’u indirin.
Sıkça sorulan sorular
Git-yerel API istemcisi nedir?
Git-yerel API istemcisi, API koleksiyonlarını deponuzda düz dosyalar olarak saklayan istemcidir. Bu dosyalar commit edilebilir, diff alınabilir, branch’lenebilir, merge edilebilir ve pull request içinde review yapılabilir. Doğruluk kaynağı satıcı bulutundaki kayıt değil, depodaki dosyadır.
Postman Git-yerel bir istemci midir?
Hayır. Postman bulut önceliklidir. Koleksiyonlar kendi çalışma alanında yaşar ve Git erişimi sınırlı entegrasyonlarla sağlanır. JSON export alabilirsiniz; ancak bu, deponuzda yaşayan sürüm kontrollü dosya ile aynı şey değildir.
Bruno’ya en iyi Git-yerel alternatif nedir?
Sadece dosya tabanlı request koleksiyonları istiyorsanız Bruno çok güçlüdür. Bruno’nun dosya modelini testler, mock’lar ve dokümantasyonla birlikte tek sürümlenmiş projede istiyorsanız Apidog daha kapsamlı bir alternatiftir.
Git-yerel istemciler CI/CD’de çalışabilir mi?
Evet. Bruno, Hoppscotch, Step CI, Hurl ve Apidog komut satırı çalıştırıcıları sunar. Böylece ekibin düzenlediği aynı dosyalar her push veya pull request sırasında pipeline içinde çalıştırılabilir.
Bu istemciler çevrimdışı çalışır mı?
Dosya tabanlı olanlar çalışır. Bruno, Hurl ve Step CI yerel dosyalardan çalışır. Hoppscotch kendi kendine barındırılabilir. Apidog, projeyi yerel olarak kullanılabilir tutarken Git ile senkronize eder. Bulut öncelikli istemciler ise servis erişilebilirliğine daha bağımlıdır.
API isteklerini neden Git’te depolamalıyız?
Çünkü API sözleşmesi kod kadar kritiktir. İstekleri dosya olarak depolamak size review, geçmiş, branch, merge ve CI avantajı sağlar. Bu yaklaşım Git-yerel API geliştirme pratiğinin temelidir.
En Git-yerel API istemcisi hangisidir?
Bruno en saf Git-yerel istemcidir; çünkü her istek zorunlu bulut gerektirmeyen düz metin dosyasıdır. Apidog ise en eksiksiz seçenektir; çünkü isteklerle birlikte spesifikasyonu, testleri ve dokümanları da sürümlendirir.
Dosya tabanlı koleksiyonlar merge conflict üretir mi?
Evet, herhangi bir dosya gibi conflict oluşabilir. Ancak bu conflict düz metinde çözülebilir. Bulut çalışma alanında sessizce üzerine yazılan değişikliklere göre daha görünür ve yönetilebilirdir. İstekleri küçük klasörlere ayırmak conflict riskini azaltır.
Git-yerel istemciyi kendi kendine barındırılan Git sunucusuyla kullanabilir miyim?
Evet. Dosya tabanlı istemciler herhangi bir Git barındırıcısıyla çalışır. Apidog GitHub, GitLab ve kendi kendine barındırılan örneklerle bağlantı kurar. Hoppscotch gibi kendi kendine barındırılabilir istemciler de tüm akışı kendi altyapınızda tutmanıza yardımcı olur.
API koleksiyonunu depoda nerede saklamalıyım?
Genellikle test ettiği servisin yanında saklamak en pratiktir. Örneğin:
service-orders/
src/
api/
collections/
environments/
Paylaşılan koleksiyonlar için üst seviye api/ veya tests/ klasörü de kullanılabilir. Önemli olan, ekip büyümeden önce klasör yapısında anlaşmaktır.
Sonuç
Diff alamadığınız veya pull request içinde inceleyemediğiniz API koleksiyonları, ekip büyüdükçe risk üretir. Git-yerel istemciler bu koleksiyonları incelenebilir, branch’lenebilir ve CI’da çalıştırılabilir dosyalara dönüştürür.
Bruno en temiz saf Git-yerel istemcidir. Insomnia ve Hoppscotch güçlü Git dostu seçeneklerdir. Step CI ve Hurl pipeline öncelikli ekipler için uygundur. API istekleriyle birlikte spesifikasyon, test ve dokümantasyonu da tek sürüm kontrollü yapıda tutmak isteyen ekipler için hepsi bir arada yaklaşım daha güçlüdür.
Apidog’u deponuza bağlayarak koleksiyonlarınızı kodunuzla aynı review ve CI sürecine dahil edebilirsiniz. Başlamak için Apidog’u indirin.





Top comments (0)