Mock API Nedir? Açık Bir Açıklama

INEZA Felin-Michel

INEZA Felin-Michel

22 May 2026

Mock API Nedir? Açık Bir Açıklama

Kurumsal Apidog

Şirket İçi Dağıtım

SSO & RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfet

Bir sahte API, gerçek bir API gibi davranan sahte bir API'dir. Aynı istekleri kabul eder, aynı biçimde yanıtlar döndürür ve çağırabileceğiniz bir URL'de bulunur, ancak bu URL'nin arkasında gerçek bir veritabanı, iş mantığı veya gerçek bir servis yoktur. Yanıt, önceden tanımladığınız bir şeydir.

Bu kulağa önemsiz geliyor ve fikir de öyle. Değeri, size ne yapma olanağı sağladığından gelir: Arkasındaki şey var olmadan önce veya gerçek şey çok yavaş, çok maliyetli veya çağrılması çok güvenilmezken bir arayüze karşı geliştirme ve test yapma. Bu açıklama terimi kesin olarak tanımlar, bir sahteyi karıştırıldığı şeylerden ayırır ve bir sahtenin nasıl davrandığını belirleyen statik-dinamik ayrımını ortaya koyar.

Sahte bir API aslında nedir?

Basitçe söylemek gerekirse, bir sahte API bir istek-yanıt eşlemesidir. Bir istek gelir. Sahte, onu belirlediğiniz kurallara göre eşleştirir, bir yanıt seçer ve geri gönderir. İstemedikçe arada hiçbir hesaplama yapılmaz.

Bir sahtenin üç kısmı vardır. Birincisi arayüzdür: gerçek API ile tam olarak eşleşmesi gereken rotalar, metotlar ve kabul ettiği parametreler. İkincisi yanıt tanımıdır: döndürdüğü gövdeler, durum kodları ve başlıklar. Ve üçüncüsü eşleştirme mantığıdır: sahtenin belirli bir isteğin hangi yanıtı alacağına nasıl karar verdiği, basit bir yol eşleştirmesinden sorgu parametrelerine veya başlıklara göre dallanan kurallara kadar.

Arayüz gerçek API ile eşleştiği için, sahteyi çağıran kod onun sahte olduğunu bilmez. Temel URL'yi değiştirin ve aynı istemci gerçek servisle konuşur. Bu değiştirilebilirlik, olayın tüm noktasıdır. Bir tane oluşturmaya dair uygulamalı bir anlatım için, test için bir API'yi sahteleme rehberine bakın.

Bir sahte API'nin ne olmadığını kesin olarak belirtmek faydalıdır. Bir önbellek değildir, çünkü önbellek gerçek yanıtları saklar ve bir sahte onları uydurur. Bir sanal ortam değildir, çünkü bir satıcı sanal ortamı gerçek, basitleştirilmiş mantık yürütürken bir sahte hiç mantık yürütmez. Ve bir hazırlık ortamı değildir, çünkü hazırlık, gerçek sistemin tam bir dağıtımıdır. Bir sahte, bu üçünden de daha hafiftir: sadece arkasında önceden tanımlanmış yanıtlar bulunan bir API'nin ön kapısıdır ve başka hiçbir şey değildir.

Mock ve Stub karşılaştırması

İnsanlar "mock" ve "stub" terimlerini birbirinin yerine kullanır, ancak test bağlamında farklı anlamlara gelirler.

Stub daha basit bir fikirdir. Bir çağrıya önceden hazırlanmış bir yanıt döndürür ve başka hiçbir şey yapmaz. Ondan bir kullanıcı isteyin, sabit bir kullanıcı döndürür. Bir stub'ın nasıl çağrıldığı hakkında hiçbir fikri yoktur.

Kesin test anlamında bir mock, etkileşimi de doğrular. Çağrılıp çağrılmadığını, kaç kez çağrıldığını ve hangi argümanlarla çağrıldığını iddia edebilir. Bir mock, sadece bir değer sağlamakla kalmaz, çağrı yanlış olduğu için testinizi başarısız edebilir.

Günlük API çalışmalarında bu çizgi bulanıktır ve "sahte API" genellikle her ikisini de kapsar. Faydalı çıkarım şudur: bir stub yanıtlar, bir mock yanıtlar ve izler. Testiniz yalnızca kodunuzun aldığı verileri önemsediğinde, stub tarzı bir yanıt yeterlidir. Kodunuzun doğru çağrıyı doğru şekilde yapıp yapmadığını önemsediğinde, gerçek bir mock'un eklediği doğrulamayı istersiniz. Daha geniş bir terminoloji için, doğrulama ve tasdik arasındaki farka bakın.

Yakınlarda iki terim daha bulunur. Bir fake (sahte), çalışan ancak basitleştirilmiş bir uygulamadır; gerçek bir veritabanı yerine kullanılan bellek içi bir veritabanı gibi; mantığı vardır, sadece daha azı. Bir spy (casus), gerçek bir nesneyi sarar ve davranışını değiştirmeden nasıl çağrıldığını kaydeder. API geliştirmede terimin kullanıldığı şekliyle bir sahte API, isteğe bağlı doğrulama ile bir stub'a en yakındır ve gerçek bir URL üzerinden HTTP ile sunulur. Terminolojiyi denetlemenize gerek yok, ancak spektrumu bilmek, test belgelerini kaybolmadan okumanıza yardımcı olur.

Sahte API ve gerçek sunucu karşılaştırması

Gerçek bir sunucu ve sahte bir sunucu aynı URL'de bulunabilir ve aynı JSON'u döndürebilir, bu yüzden fark, uç noktanın arkasında ne olduğudur.

Sahte API Gerçek sunucu
Uç noktanın arkasında Önceden tanımlanmış yanıtlar Canlı mantık ve veritabanı
Yanıt kaynağı Sizin yazdığınız kurallar İstek başına hesaplanır
Veri Sabit veya üretilmiş Gerçek, kalıcı
Yan etkiler Yok Yazmalar, ücretlendirmeler, e-postalar
Hız Hızlı ve sabit Yüke göre değişir
Doğruluk Tanımladığınızla eşleşir Gerçek davranışla eşleşir

Gerçek bir sunucu size gerçeği söyler: gerçek kodu çalıştırır ve sistemin çalıştığını kanıtlar. Aynı zamanda yavaş, durumlu ve gerçek yan etkilere neden olabilir, bu nedenle ona karşı yapılan bir test bir kartı ücretlendirebilir veya bir e-posta gönderebilir.

Bir sahte sunucu size sadece söylediklerinizi anlatır. Hızlıdır, yan etkileri yoktur ve mükemmel derecede tahmin edilebilir, bu da onu geliştirme ve çoğu test için ideal kılar. Ancak bir sahte yanlış olabilir ve bunu asla bilemez, çünkü gerçek mantığı çalıştırmaz. Bu yüzden bazı testleri gerçek sunucu üzerinde tutarsınız. Bu denge, sahte sunucuya karşı gerçek sunucu rehberinde ayrıntılı olarak ele alınmıştır.

Statik ve dinamik sahteler

Bir sahte, yanıtını iki şekilde döndürür ve bu seçim, sahteyi kullanma hissini şekillendirir.

Statik bir sahte, sabit bir yük döndürür. Tam JSON'u bir kez yazarsınız ve her eşleşen istek aynı gövdeyi geri alır. Statik sahteler tahmin edilebilir, bu da onlara karşı iddiada bulunmayı kolaylaştırır. Zayıflıkları gerçekçiliktir: tek bir sabit kodlu yük, uzun dizelerde, boş dizilerde veya beklenmeyen null değerlerde bozulan koddaki bir hatayı ortaya çıkarmaz.

Dinamik bir sahte, yanıtı istek başına oluşturur. Sabit bir "id": "user_1001" yerine, her çağrıda yeni bir UUID üretir. Tek bir ad yerine, her seferinde farklı gerçekçi bir ad döndürür. Dinamik sahteler genellikle bunu Faker.js gibi bir veri üretim grameriyle yönlendirir, böylece email adlı bir alan bir e-posta, created_at ise bir tarih üretir. Daha gerçekçidirler ve uç durumları ortaya çıkarmakta daha iyidirler, ancak tam olarak karşılarında iddiada bulunmak daha zordur.

Çoğu ekip her ikisini de kullanır. Tek bir bilinen değere karşı iddiada bulunmanız gereken iddia yoğun birim testleri için statik sahteler. Çeşitliliğin sabit bir yanıttan daha önemli olduğu geliştirme, demolar ve bulanık test (fuzz-style) kapsamı için dinamik sahteler.

Dinamik bir sahte aynı zamanda koşullu olabilir, bu da basit üretimin ötesinde bir adımdır. Koşullu bir sahte isteğe göre dallanır: /orders/404 isteği 404 döndürür, kötü bir token içeren istek 401 döndürür ve diğer her şey normal bir 200 döndürür. Böylece tek bir sahte uç nokta, başarılı yolu ve birkaç hata yolunu aynı anda kapsar. Sağlıklı bir gerçek sunucunun talep üzerine üretmeyeceği hata yanıtlarını yeniden üretebildiği için bir sahteyi test için gerçekten faydalı yapan budur.

Sahte bir API geliştirmede nerede kullanılır?

Bir sahte API üç noktada kullanışlıdır. Erken aşamalarda, ön uç ve arka uç ekiplerinin bir sözleşme üzerinde anlaşmasını ve paralel olarak geliştirmesini sağlar, böylece kimse diğerini beklemez. Test sırasında, kodunuzu ağdaki istikrarsızlıktan izole eder ve gerçek bir sunucunun talep üzerine üretmeyeceği hata yanıtlarını tetiklemenizi sağlar. Ve demolar ile prototipler için, sunum sırasında başarısız olacak canlı bir bağımlılık olmadan kontrollü, tahmin edilebilir veriler sağlar. Bu senaryolar, API sahteleme kullanım durumları rehberinde daha ayrıntılı olarak incelenmiştir.

Tekrarlayan risk sapmadır. Bir sahte, bir arayüzün anlık görüntüsüdür ve arayüzler değişir. Gerçek API bir alan eklediğinde veya yeniden adlandırdığında, bağlantısı kesilmiş bir sahte eski şekli sunmaya devam eder ve testleriniz artık var olmayan bir sözleşmeye karşı geçer.

Çözüm, sahteyi yazılmış değil, türetilmiş olarak kabul etmektir. Gerçek API'nin yayınladığı aynı şemadan oluşturun, böylece bir sözleşme değişikliği sahteyi yeniden oluşturur. Elle yazdığınız bir sahte, hemen eskimeye başlayan bir kopyadır; belirtimden oluşturulan bir sahte ise her zaman güncel bir anlık görüntüdür. Fark ilk günden belli olmaz, ancak altı ay sonra sahtenin hala güvenilir olup olmadığına karar verir. Apidog bu şekilde çalışır: API'yi bir kez tasarlarsınız ve sahte uç nokta, alan adlarından çıkarılan gerçekçi verilerle bu tasarımdan oluşturulur. Sahte, dokümantasyon ve API sözleşme testi hepsi tek bir kaynaktan okunur, böylece uyumlu kalırlar. Tasarımdan sahteye akışını uçtan uca görmek için Apidog'u indirin.

Sıkça sorulan sorular

Basitçe sahte API nedir?

Sahte bir API, gerçek bir API'yi taklit eden sahte bir API'dir. Aynı rotaları açığa çıkarır ve aynı biçimde yanıtlar döndürür, ancak arkasında gerçek bir mantık veya veritabanı yoktur. Yanıtlar önceden tanımlanmıştır, bu da gerçek servis var olmadan önce arayüze karşı geliştirme ve test yapmanızı sağlar.

Mock ile Stub arasındaki fark nedir?

Bir stub önceden hazırlanmış bir yanıt döndürür ve başka hiçbir şey yapmaz. Kesin test anlamında bir mock, etkileşimi de doğrular, böylece doğru argümanlarla doğru sayıda çağrılıp çağrılmadığını kontrol edebilir. Bir stub yanıtlar; bir mock yanıtlar ve izler.

Sahte API gerçek bir sunucudan nasıl farklıdır?

Bir sahte, gerçek bir hesaplama olmaksızın önceden tanımlanmış yanıtlar döndürür, bu nedenle hızlı, tahmin edilebilir ve yan etkisizdir. Gerçek bir sunucu, gerçek bir veritabanına karşı gerçek mantığı çalıştırır, bu nedenle daha yavaş ve durumlu olsa da sistemin gerçekten çalıştığını kanıtlar. Geliştirme için bir sahte kullanın, sözleşme ve uçtan uca testler için gerçek sunucuyu kullanın.

Statik mi yoksa dinamik sahte mi kullanmalıyım?

Üzerine iddia etmek için tahmin edilebilir tek bir değere ihtiyacınız olduğunda statik bir sahte kullanın, bu birim testleri için uygundur. Köşe durumlarını yakalayan gerçekçi, çeşitli veriler istediğinizde dinamik bir sahte kullanın, bu da geliştirme ve demolar için uygundur. Birçok ekip her ikisini de kullanır.

Sahte bir API'nin yanlış hale gelmesini nasıl engellerim?

Sahteyi elle yazmak yerine, gerçek API'nin yayınladığı aynı şemadan oluşturun. Sözleşme değiştiğinde, sahte yeniden oluşturulur. Gerçek API'ye karşı planlanmış sözleşme testleriyle desteklemek, kalan sapmaları erken yakalar.

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin