Bir ön uç geliştirirken, bir istemcide hata ayıklarken veya yeni bir HTTP kitaplığı öğrenirken, genellikle bir arka uç kurmadan gerçek görünümlü JSON döndüren bir uç noktaya ihtiyacınız olur. Bir kukla API size tam da bunu sağlar: hemen çağırabileceğiniz herkese açık, ücretsiz, her zaman açık bir hizmet. Bu kılavuz en iyi genel kukla API'leri listeler, bunları nasıl çağıracağınızı gösterir ve başkasının verilerini ödünç almaktan ne zaman vazgeçip kendi sahte REST API'nizi oluşturmanız gerektiğini açıklar. Genel API ortamına daha derinlemesine bir giriş isterseniz, Fetch API'yi kullanma MDN kılavuzu aşağıdaki her şeyle iyi bir şekilde eşleşir.
Bir kukla API aslında nedir?
Bir kukla API, yaygın kaynak türleri için önceden tanımlanmış, gerçekçi JSON döndüren barındırılmış bir hizmettir: kullanıcılar, gönderiler, ürünler, sepetler, yapılacaklar. Kaydolmanıza, hiçbir şeyi barındırmanıza gerek kalmaz ve üretim verilerini bozma endişesi duymazsınız. Çoğu GET, POST, PUT, PATCH ve DELETE'i kabul eder, ancak yazma işlemleri genellikle sahtedir. Sunucu, yükünüzü bir kimlikle geri yansıtır ve kaydettiğini iddia ederken, aslında hiçbir şey kalıcı olmaz.
Birine güvenmeden önce anlaşılması gereken temel özellik budur. Bir kukla API, okuma ağırlıklı prototipleme ve istek kodunuzun çalıştığını kanıtlama için mükemmeldir. Durum bilgisi olan davranışa, kendi veri şekillerinize veya özel hata koşullarına ihtiyacınız olduğu anda kötü bir seçimdir.
Test etmek için en iyi ücretsiz kukla ve sahte API'ler
İşte bilmeye değer genel API'ler. Hepsi ücretsizdir ve sizin tarafınızdan herhangi bir arka uç kurulumu gerektirmez.
JSONPlaceholder
JSONPlaceholder klasiktir. Altı ilgili kaynak sunar: 100 gönderi, 500 yorum, 100 albüm, 5.000 fotoğraf, 200 yapılacaklar ve 10 kullanıcı. İlişkiler gerçektir, bu nedenle bir gönderinin yorumları ve bir albümün fotoğrafları vardır, bu da iç içe çekmeleri test etmek için iyidir.
curl https://jsonplaceholder.typicode.com/posts/1
Tek bir gönderi nesnesi geri alırsınız. Yazma istekleri kabul edilir ancak kaydedilmez, bu nedenle POST /posts her seferinde sahte bir id: 101 döndürür.
DummyJSON
DummyJSON daha geniş kapsamlıdır. Ürünler, sepetler, kullanıcılar, gönderiler, yorumlar, alıntılar, yapılacaklar ve tarifler sunar, ayrıca size bir token veren bir kimlik doğrulama akışı da vardır. Bir alışveriş sepeti kullanıcı arayüzü veya bir giriş ekranı test ediyorsanız, bu tercih edilmesi gereken bir API'dir.
curl https://dummyjson.com/products/1
Kimlik doğrulama uç noktası, bir kullanıcı adı ve parola POST etmenize ve bir JWT almanıza olanak tanır, bu da gerçek bir kimlik sağlayıcısı kurmadan token depolama ve kimliği doğrulanmış istekleri uygulamak için kullanışlıdır.
reqres.in
reqres.in istek ve yanıt yaşam döngüsüne odaklanır: kullanıcıları listele, tek kullanıcı, kaydol, giriş yap, gecikmeli yanıtlar. Sayfalandırma ve kimlik doğrulama akışlarını göstermek için oluşturulmuştur. Bilmeniz gereken bir şey: ücretsiz katman artık bir API anahtarı başlığı bekliyor. İsteklerinizle birlikte x-api-key: reqres-free-v1 gönderin, aksi takdirde 401 alırsınız.
curl https://reqres.in/api/users/2 -H "x-api-key: reqres-free-v1"
Her biri nereye uyar?
| Kukla API | En iyisi için | Kimlik doğrulama akışı | Yazma kalıcılığı |
|---|---|---|---|
| JSONPlaceholder | İç içe okumalar, blog tarzı veriler | Yok | Sahte, kaydedilmemiş |
| DummyJSON | E-ticaret, sepetler, giriş | Evet (token) | Sahte, kaydedilmemiş |
| reqres.in | Sayfalandırma, kaydolma/giriş demoları | API anahtarı başlığı | Sahte, kaydedilmemiş |
Bu üçünün ötesinde daha geniş bir seçenek kataloğu isterseniz, test için genel API'lerin özeti daha özel seçenekleri kapsar ve geliştiriciler için ücretsiz genel API'ler listesi hava durumu veya para birimi gibi temalı verilere ihtiyacınız olduğunda kullanışlıdır.
Kodunuzda bir kukla API nasıl çağırılır?
Birini çağırmak, herhangi bir HTTP uç noktasını çağırmakla aynıdır. İşte bir kullanıcıyı okuyan ve ardından yeni bir kullanıcı POST eden JavaScript'te basit bir fetch örneği.
// Oku
const res = await fetch('https://dummyjson.com/users/1');
const user = await res.json();
console.log(user.firstName);
// Yaz (geri yansıtılır, kalıcı değildir)
const created = await fetch('https://dummyjson.com/users/add', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ firstName: 'Ada', lastName: 'Lovelace' }),
});
console.log(await created.json()); // sahte bir kimliğe sahip bir nesne döndürür
Python'da requests ile şekil aynı derecede kısadır.
import requests
r = requests.get("https://jsonplaceholder.typicode.com/todos/1")
print(r.json())
Bunlardan herhangi birini bir test dosyasına bırakın ve karşılaştırmak için çalışan bir entegrasyonunuz olsun. Bu iddialar için inandırıcı değerlere ihtiyacınız varsa, gerçekçi API test verileri oluşturma kılavuzu, test123 yerine üretim trafiği gibi görünen adlar, e-postalar ve zaman damgaları oluşturmayı gösterir.
Genel bir kukla API'nin yeterli olmaktan çıktığı zaman
Genel kukla API'ler, ihtiyaçlarınız özel hale gelene kadar harikadır. Birkaç yaygın durumda bir duvara çarparsınız:
- Veri şekilleriniz eşleşmiyor. Uygulamanız bir
subscription_tieralanı ve iç içe birbillingnesnesi bekliyor. JSONPlaceholder sizepostsvealbumsverir. Şemalarını sizinkine uyduramazsınız. - Duruma ihtiyacınız var. Gerçek bir sepet, bir öğe eklediğinizde güncellenir. Kukla API'ler POST'unuzu döndüğü anda unutur.
- Kontrollü hatalara ihtiyacınız var. Kullanıcı arayüzünüzün 429, yavaş bir 200 veya bozuk bir gövdeyi nasıl ele aldığını test etmek, genel hizmet her zaman düzgün çalıştığında zordur.
- Arka uç henüz yokken inşa ediyorsunuz. Ön uç ve arka uç ekipleri genellikle aynı anda başlar. API yayınlandığında değil, bugün üzerinde anlaşılan sözleşmeye uyan uç noktalara ihtiyacınız vardır.
Bu noktada ödünç alınmış bir API'ye ihtiyacınız yoktur. İhtiyacınız olan, istediğiniz şekilleri, kontrol ettiğiniz yanıtlarla talep üzerine döndüren kendi sahte API'nizdir. Bu, test için oluşturulmuş bir mock API'dir ve Apidog'un devreye girdiği yer burasıdır.
Apidog ile kendi sahte API'nizi nasıl oluşturursunuz?
Apidog, tasarımı, testi, hata ayıklamayı ve mock'lamayı tek bir yerde birleştiren bir API platformudur. Mock'lama şema odaklıdır, bu nedenle uç noktanızın yapısını okur ve yerleşik Faker kurallarını kullanarak otomatik olarak gerçekçi sahte veriler üretir. Şekli bir kez tanımlarsınız ve her istek yeni, mantıklı değerler döndürür.

İşte iş akışının kısa versiyonu.
- Bir uç nokta oluşturun veya içe aktarın. Apidog'da yeni bir API tanımlayın veya mevcut bir OpenAPI veya Swagger dosyasını içe aktarın. Apidog şemayı doğrudan okur.
- Akıllı mock'un verileri doldurmasına izin verin.
emailadlı bir alan için Apidog bir e-posta döndürür.createdAtiçin bir zaman damgası döndürür.priceiçin bir sayı. Bu kuralları alan başına ayarlayabilirsiniz, böylece bircountryalanı rastgele dizeler yerine gerçek ülke adları döndürür. - Yerel mock URL'sini çağırın. Apidog bir mock sunucusu başlatır ve her uç nokta için size bir URL verir. Bunu ön ucunuzdan, testlerinizden veya curl'den, tıpkı genel bir kukla API gibi çağırın, ancak yanıtlar sözleşmenizle eşleşir.
- Koşullu ve hata yanıtları ekleyin. Bir mock'u isteğe bağlı olarak 500, 404 veya gecikmeli bir yanıt döndürecek şekilde yapılandırın. Artık genel hizmetlerin asla yeniden üretmenize izin vermediği olumsuz yolları test edebilirsiniz.
Mock, spesifikasyonunuzdan oluşturulduğu için, tasarımınız geliştikçe senkronize kalır. Bir alanı değiştirin ve mock bunu yansıtır. Spesifikasyondan doğrudan mock oluşturma konusunda daha geniş bir bakış açısı isterseniz, OpenAPI şemalarından mock veri oluşturma kılavuzu Faker tarafına daha derinlemesine girer.
Genel kukla API vs. kendi Apidog mock'unuz
| İhtiyaç | Genel kukla API | Apidog mock |
|---|---|---|
| Hızlı salt okunur veri | Mükemmel | Mükemmel |
| Tam veri şekilleriniz | Hayır | Evet |
| Özel hata ve gecikme yanıtları | Hayır | Evet |
| OpenAPI sözleşmenizle eşleşir | Hayır | Evet |
| Kurulum süresi | Sıfır | Dakikalar |
İkisi de kesinlikle daha iyi değildir. Sadece beş saniyede herhangi bir JSON'a ihtiyacınız olduğunda genel bir kukla API kazanır. Gerçek sözleşmenize karşı doğruluk önemli olduğu anda kendi Apidog mock'unuz kazanır. Çoğu ekip ikisini de kullanır: tek kullanımlık denemeler için genel olanları, yayınlanan her şey için bir proje mock'unu.
Sıkça sorulan sorular
Bir kukla API, bir mock API ile aynı mıdır?
Örtüşürler ama aynı değildirler. Bir kukla API genellikle JSONPlaceholder gibi sabit örnek verilere sahip genel, paylaşılan bir hizmet anlamına gelir. Bir mock API, kendi şekillerinizi ve davranışlarınızı döndüren, tanımladığınız ve kontrol ettiğiniz bir API'dir. Bir kukla API, başkalarının zaten barındırdığı bir mock türüdür. Farkı detaylı olarak görmek isterseniz, bir mock API'nin ne olduğuna dair açıklamaya bakın.
Ücretsiz sahte API'leri gerçek verilerle kullanmak güvenli midir?
Hayır. Gerçek kullanıcı verilerini, sırları veya token'ları asla genel bir kukla API'ye göndermeyin. POST ettiğiniz her şeyi günlüklenmiş ve görünür olarak kabul edin. Bunları yalnızca tek kullanımlık test değerleriyle kullanın. Gizliliğe veya kalıcılığa ihtiyacınız olduğunda, bunun yerine kendi mock'unuzu barındırın.
Kukla API'ler gönderdiğim verileri kaydediyor mu?
Neredeyse hiçbir zaman. JSONPlaceholder, DummyJSON ve reqres.in hepsi yazma isteklerini kabul eder ve oluşturulmuş bir kimlikle bir sonuç geri yansıtır, ancak hiçbir şey kalıcı olmaz. Yenilediğinizde "oluşturulan" kaydınız gitmiş olur. Kalıcı bir duruma ihtiyacınız varsa, durum bilgisi olan bir mock'a veya gerçek bir arka uca ihtiyacınız vardır.
Hiç kod yazmadan sahte bir API oluşturabilir miyim?
Evet. Apidog ile uç nokta şeklini tanımlarsınız ve akıllı mock'un verileri oluşturmasına izin verirsiniz, sunucu kodu gerekmez. Ayrıca bir OpenAPI dosyasını içe aktarabilir ve dakikalar içinde çalışan mock uç noktaları alabilirsiniz.
Sonuç
JSONPlaceholder, DummyJSON ve reqres.in gibi genel kukla API'ler, prototipleme ve öğrenme için gerçekçi JSON elde etmenin en hızlı yoludur. Hiçbir maliyeti yoktur ve kurulum gerektirmezler. Kendi veri şekillerinize, gerçek duruma veya kontrollü hata yanıtlarına ihtiyacınız olduğu anda, gerçekten size ait bir sahte API oluşturun.
Apidog tam da bunu yapmanızı sağlar: spesifikasyonunuzu içe aktarın, şema odaklı mock verileri alın ve dakikalar içinde kendi uç noktalarınızı çağırın. Apidog'u indirin ve bir arka uç kodu yazılmadan önce bir sonraki API sözleşmenizi çalışan bir mock'a dönüştürün. Apidog'da test iş akışınıza nasıl uyduğunu görün.
