Yeni bir ön uç özelliği geliştiriyorsunuz ve bu bir arka uç API'ye bağımlı. Tek bir sorun var: Arka uç API henüz mevcut değil. Ya da belki var, ama kararsız, yavaş veya hala geliştirme aşamasında. Arka uçtaki meslektaşlarınız işlerini bitirene kadar ilerleyemediğiniz bir çıkmazda buluyorsunuz kendinizi.
İşte bu sinir bozucu senaryo, hafif mock sunucularının tam da bu yüzden icat edilmesinin nedenidir. Ön uç ve arka uç ekiplerinin paralel çalışmasını sağlayarak geliştirmeyi hızlandıran ve bağımlılıkları azaltan gizli silahlarıdırlar.
Ancak bu kadar çok seçenek varken, doğru olanı nasıl seçeceksiniz? Bir mock sunucusunu "hafif" yapan nedir ve özel ihtiyaçlarınız için hangi araç mükemmel uyum sağlar?
API bağımlılıklarını beklerken veya belirli senaryoları test etmeniz gerektiğinde kendinizi hiç bulduysanız, doğru yerdesiniz.
Şimdi, hafif mock sunucuları dünyasını keşfedelim ve iş akışınız için mükemmel aracı bulalım.
Neden Hafif Bir Mock Sunucusuyla Uğraşalım Ki?
Araçlara geçmeden önce, neden konuşalım.
Şöyle düşünebilirsiniz: "Ön ucumda biraz JSON'u hardcode edemez miyim?" Elbette, edebilirsiniz. Ancak bu yaklaşım şu durumlarda hızla çöker:
- Kullanıcı arayüzünüzün farklı yanıt durumlarını (404, 500, 429 hız limitleri) ele alması gerektiğinde.
- Yükleme durumlarını test etmek için gecikmeleri simüle etmek istediğinizde.
- Uygulamanız birden fazla birbirine bağımlı API çağrısı yaptığında (örn. giriş → profili getir → gösterge panelini yükle).
- Bir ekipte çalıştığınızda ve herkesin aynı mock davranışına ihtiyacı olduğunda.
Uygun bir mock sunucusu tüm bunları çözer. Ve hafif olduğunda, şu anlama gelir:
✅ Saniyeler içinde başlar
✅ Minimum kaynakla yerel olarak (veya CI'da) çalışır
✅ Çok az veya hiç yapılandırma gerektirmez
✅ Sizi karmaşık bir ekosisteme zorlamaz
Başka bir deyişle: daha az sürtünme, daha çok çıktı.
Hafif Bir Mock Sunucusu Tam Olarak Nedir?
Belirli araçlara dalmadan önce, ne aradığımızı tanımlayalım. Hafif bir mock sunucusu, tam bir arka uç uygulamasının yükü olmadan gerçek bir API sunucusunu simüle eden basit, hızlı ve kullanımı kolay bir araçtır.
Hafif bir mock sunucusunun temel özellikleri şunlardır:
- Hızlı Kurulum: Saatler değil, dakikalar içinde çalışır duruma gelmelisiniz
- Minimum Bağımlılıklar: Karmaşık kurulum veya yapılandırma gerekmez
- Hızlı Performans: Veritabanı çağrıları veya karmaşık mantık olmadan anında yanıtlar
- Esneklik: Farklı senaryolar için yanıtları kolayca özelleştirme
- Sıfır Bakım: Sürekli bakım gerektirmeden kutudan çıktığı gibi çalışır
Bu araçlar şunlar için mükemmeldir:
- Arka uç hazır olmadığında ön uç geliştirme
- Belirli API yanıt senaryolarını test etme
- Uygulamaları prototipleme ve demo etme
- CI/CD ardışık düzen testi
- Dokümantasyon örnekleri
1. JSON Server: Sıfır Kodlu Klasik
JSON Server tartışmasız en popüler hafif mock sunucusudur ve iyi bir nedeni vardır. Basit bir JSON dosyasını 30 saniyenin altında tam işlevsel bir REST API'ye dönüştürür.
Artıları:
- İnanılmaz basit kurulum
- Kutudan çıktığı gibi tam CRUD operasyonları
- Dahili ilişkiler ve filtreleme
- Prototipleme için harika
Eksileri:
- Sınırlı dinamik davranış
- Kimlik doğrulama simülasyonu yok
- Dosya tabanlı (ekipler için ideal değil)
En iyisi: Hızlı prototipleme, basit CRUD uygulamaları ve REST API'lerini öğrenmek için.
2. Mock Service Worker (MSW): Durdurma Güç Santrali
Mock Service Worker tamamen farklı bir yaklaşım benimser. Ayrı bir sunucu çalıştırmak yerine, HTTP isteklerini Hizmet Çalışanları (Service Workers) kullanarak ağ seviyesinde durdurur.
Artıları:
- Gerçek API çağrılarını durdurur - kod değişikliği gerekmez
- Hem REST hem de GraphQL için çalışır
- Testlerde ve geliştirme sırasında kullanılabilir
- Ayrı sunucu işlemi yok
Eksileri:
- Daha karmaşık kurulum
- Yalnızca tarayıcı (Node.js sürümü olmasına rağmen)
- Hizmet Çalışanları'nı anlamayı gerektirir
En iyisi: Ön uç geliştirme, test etme ve gerçek API çağrıları yapan uygulamalar için.
3. Mirage JS: Tam Özellikli Simülasyon
Mirage JS, karmaşıklık açısından JSON Server ve MSW arasında yer alır. Veritabanları ve ilişkiler dahil olmak üzere eksiksiz bir arka ucu simüle etmenizi sağlayan istemci tarafı bir sunucudur.
Artıları:
- Zengin modelleme sistemi
- Veritabanı benzeri ilişkiler
- Karmaşık veri senaryoları için mükemmel
- Harika dokümantasyon
Eksileri:
- Daha dik öğrenme eğrisi
- Daha fazla kurulum gerektirir
- Yalnızca istemci tarafı
En iyisi: Zengin veri ilişkilerine sahip karmaşık ön uç uygulamaları için.
4. http-server: Basit Statik Sunucu
Bazen dinamik bir API'ye ihtiyacınız olmaz, sadece statik JSON dosyalarını sunmanız gerekir. İşte http-server burada parlar.
Artıları:
- Son derece basit
- Npx kullanılıyorsa bağımlılık yok
- Statik mock verileri için mükemmel
- Tüm statik dosyalarla çalışır
Eksileri:
- Dinamik davranış yok
- Salt okunur
- REST kuralları yok
En iyisi: Basit statik veriler, hızlı demolar ve sadece dosya sunmanız gerektiğinde.
5. WireMock (Bağımsız Mod): Gelişmiş Kullanım Durumları İçin Hafif
Çoğu kişi WireMock'u ağır bir kurumsal araç olarak düşünür, ancak bağımsız modda şaşırtıcı derecede hafiftir.
Güçlü Yönleri
- Son derece güçlü: zaman aşımlarını, vekil sunucuyu, hata enjeksiyonunu simüle eder.
- Durumlu mocklama (örneğin, "2 istekten sonra hata döndür").
- Tasarım gereği RESTful her şey HTTP aracılığıyla yönetilir.
Zayıf Yönleri
- Java gerektirir (bazıları için engelleyici).
- Daha dik öğrenme eğrisi.
- Basit mocklar için aşırıya kaçmak.
WireMock bağımsız modunu yalnızca temel REST yanıtlarının ötesinde gelişmiş davranış simülasyonu ihtiyacınız varsa kullanın.
6. Beeceptor: Bulut Tabanlı Ama Özünde Hafif
Beeceptor, bulut tabanlı bir mock sunucusudur ancak basitliği nedeniyle hafif hissettirir.
Nasıl Çalışır?
- Beeceptor'a gidin.
- Bir uç nokta oluşturun (örneğin,
myapi.free.beeceptor.com). - Kurallar tanımlayın: “Yol =
/usersise, bu JSON'u 200 ile döndür.” - Uygulamanızdan uç noktayı çağırın.
Kurulum yok. Ayar yok. Sadece HTTP.
Artıları ve Eksileri
✅ Artıları:
- Sıfır kurulum.
- Mobil veya tarayıcı testi için harika.
- Ücretsiz plan mevcut.
❌ Eksileri:
- Çevrimdışı değil internet gerektirir.
- Ücretsiz planda sınırlı özelleştirme.
- Veriler bulutta yaşar (hassas spesifikasyonlar için ideal değil).
Üretim düzeyinde iş akışları için değil, hızlı demolar veya keşif testleri için en iyisidir.
Doğru Aracı Nasıl Seçersiniz?
Tüm bu seçenekler varken, doğru olanı nasıl seçeceksiniz? Şu faktörleri göz önünde bulundurun:
Kullanım Durumunuzu Göz Önünde Bulundurun
- Ön Uç Geliştirme: MSW veya Mirage JS
- Hızlı Prototipleme: JSON Server
- Statik Veri: http-server
- Test Etme: MSW
- Karmaşık Veri İlişkileri: Mirage JS
Teknik Rahatlığınızı Değerlendirin
- Yeni Başlayanlar: JSON Server ile başlayın
- Orta Düzey: MSW'yi deneyin
- İleri Düzey: Karmaşık senaryolar için Mirage JS
Ekip İhtiyaçlarını Düşünün
- Yalnız Geliştirici: Herhangi bir araç işe yarar
- Küçük Ekip: JSON Server veya MSW
- Büyük Ekip: Daha sağlam çözümleri düşünün
Apidog ile Gelişmiş Mocklama

Yukarıdaki araçlar belirli senaryolar için mükemmel olsa da, bazen daha kapsamlı bir çözüme ihtiyacınız olur. İşte bu noktada Apidog öne çıkar.
Apidog, eksiksiz bir API platformunun bir parçası olarak güçlü mocklama yetenekleri sunar:
Senaryo Testi:
- Başarılı yanıtları mocklama
- Hata yanıtlarını mocklama (400, 500 durum kodları)
- Yükleme testi için yavaş yanıtları mocklama
- Farklı veri durumlarını mocklama
Ekip İşbirliği:
- Paylaşılan mock sunucuları
- Sürüm kontrollü mock tanımları
- API dokümantasyonu ile entegre
Apidog kullanmanın avantajı, mocklarınızın API tasarımınızla birlikte gelişebilmesi ve tüm ekibiniz için canlı bir dokümantasyon görevi görebilmesidir.
Etkili Mocklama İçin En İyi Uygulamalar
Hangi aracı seçerseniz seçin, daha iyi sonuçlar için şu uygulamaları takip edin:
- Mockları Gerçekçi Tutun
- Uç Durumları Test Edin
Mocklarınızın şunları kapsadığından emin olun:
- Başarılı yanıtlar
- Hata yanıtları (400, 401, 403, 500)
- Boş veri kümeleri
- Sayfalama yanıtları
- Yükleme durumları (gecikmeli yanıtlar)
3. Mocklarınızı Sürümlendirin
Mock verilerinizi kodunuzla birlikte sürüm kontrolünde tutun. Bu, ekipteki herkesin tutarlı mock verilerine sahip olmasını sağlar.
4. Mocklarınızı Belgeleyin
Her bir mock uç noktasının neyi temsil ettiğini ve ne zaman kullanılacağını açıkça belgeleyin.
Geliştirme İş Akışına Entegrasyon
Mock sunucularının gerçek gücü, onları geliştirme sürecinize entegre etmekten gelir:
Geliştirme
Arka uç hazır olmadığında ön uç geliştirme için mockları kullanın. Mock ve gerçek API'ler arasında kolayca geçiş yapın.
Test Etme
Tutarlı davranış için birim ve entegrasyon testlerinizde aynı mockları kullanın.
CI/CD
Sorunları erken yakalamak için sürekli entegrasyonda mock sunucularınıza karşı testler çalıştırın.
Demo ve Hazırlık
Gerçek verilerin mevcut olmadığı veya uygun olmadığı demo ortamları için mockları kullanın.
Kaçınılması Gereken Yaygın Tuzaklar
1. Mock Kayması
Mocklarınız gerçek API'den çok farklı hale geldiğinde. Düzenli senkronizasyon bunu önlemeye yardımcı olur.
2. Aşırı Mocklama
Her şeyi mocklamayın. Bazen karmaşık mantık için gerçek bir hizmet kullanmak daha iyidir.
3. Hata Durumlarını Göz Ardı Etmek
Sadece "mutlu yolları" değil, hata yanıtlarını da mockladığınızdan emin olun.
4. Performansı Unutmak
Mocklar hızlı olsa da, karmaşık mocklama mantığı bazen performansı etkileyebilir.
Sonuç: Bugün Mocklamaya Başlayın
Hafif mock sunucuları artık bir lüks değil, modern web geliştirmenin vazgeçilmez bir parçasıdır. Ekiplere daha hızlı çalışmalarını, bağımlılıkları azaltmalarını ve daha iyi test edilmiş uygulamalar geliştirmelerini sağlarlar.
JSON Server'ın basitliğini, Mock Service Worker'ın gücünü, Mirage JS'in zenginliğini veya Apidog'un kapsamlı yaklaşımını seçseniz de, önemli olan mocklamayı iş akışınıza dahil etmeye başlamaktır.
En iyi araç, özel ihtiyaçlarınıza uyan ve yolunuzdan çekilen araçtır. Hızlı prototipler için JSON Server harikadır. Karmaşık uygulamalar için MSW veya Mirage JS daha iyi olabilir. Entegre bir çözüm isteyen ekipler için ise Apidog, eksiksiz bir API platformunun bir parçası olarak mocklama sunar.
Öyleyse bir araç seçin, ilk mock sunucunuzu kurun ve bağımlılıkları beklemek zorunda kalmadan geliştirme yapmanın keyfini yaşayın. Gelecekteki benliğiniz size teşekkür edecek!
