Bir ön uç geliştiriyorsunuz, ancak arka uç henüz hazır değil. Şu anda gerçekçi JSON döndüren, çalışan GET, POST, PUT ve DELETE işlemlerine sahip bir REST API'ye ihtiyacınız var, böylece beklemek yerine kodlamaya devam edebilirsiniz.
İşte json-server bunun içindir. Tek bir JSON dosyasını işaret ettiğinizde saniyeler içinde tam bir REST API sunar, arka uç koduna gerek yoktur. Kardeşi JSONPlaceholder ise bir adım daha ileri gider: hiçbir şey yüklemeden çağırabileceğiniz, barındırılan sahte bir API. Bu rehber, her ikisini de nasıl kullanacağınızı, nerede yetersiz kaldıklarını ve ne zaman Apidog'da şema tabanlı bir sanal sunucuya geçmeniz gerektiğini gösterir.
Uç noktaları sahtecilik yapmak hakkında daha geniş bir bakış açısı için mock API'nin ne olduğuna bakın. Burada geliştiricilerin ilk başvurduğu iki araca odaklanıyoruz.
json-server nedir?
json-server, düz bir JSON dosyasını gerçek bir REST API'ye dönüştüren açık kaynaklı bir npm aracıdır. Kaynaklarınızı açıklayan bir db.json dosyası yazarsınız, tek bir komut çalıştırırsınız ve bu dosya tarafından desteklenen standart CRUD rotalarını elde edersiniz. Yazma istekleri aslında dosyayı değiştirir, böylece veriler oturumunuz boyunca istekler arasında kalıcı olur.
Bir veritabanı kurmadan veya sunucu kodu yazmadan prototipleme, ön uç geliştirme, demolar ve testler için çalışan bir API elde etmenin en hızlı yoludur. Proje GitHub'da yer almaktadır ve tam da bu iş için yaygın olarak kullanılmaktadır.
json-server'ı kurun ve çalıştırın
Npm'den kurun:
npm install json-server
Projenizde bir db.json dosyası oluşturun. Üst düzey dizi anahtarları koleksiyon rotaları haline gelir; üst düzey nesneler tek kaynak rotaları haline gelir:
{
"posts": [
{ "id": "1", "title": "First post", "views": 100 },
{ "id": "2", "title": "Second post", "views": 250 }
],
"comments": [
{ "id": "1", "text": "Nice work", "postId": "1" }
],
"profile": {
"name": "apidog"
}
}
Sunucuyu başlatın:
npx json-server db.json
Varsayılan olarak http://localhost:3000 adresinde çalışır. İşte bu kadar; artık canlı bir API'ye sahipsiniz.
Sürüm Notu: json-server v1, eski--watchbayrağını kaldırdı, bu yüzdennpx json-server db.jsongüncel komuttur. Eğer eski 0.x serisini kullanıyorsanız, eğitimlerde halajson-server --watch db.jsonifadesini göreceksiniz.
Ücretsiz olarak edindiğiniz rotalar
Yukarıdaki db.json dosyasından, json-server eksiksiz bir REST yüzeyi oluşturur.
posts dizisi için:
GET /posts
GET /posts/:id
POST /posts
PUT /posts/:id
PATCH /posts/:id
DELETE /posts/:id
profile nesnesi için:
GET /profile
PUT /profile
PATCH /profile
Sorgulama da yerleşik olarak mevcuttur. v1 sözdizimi koşullar için iki nokta üst üste kullanır:
GET /posts?views:gt=100 # gösterimler 100'den büyük
GET /posts?views:lte=50 # gösterimler 50'den küçük veya eşit
GET /posts?_sort=-views # gösterimlere göre azalan sırada sırala
GET /posts?_page=1&_per_page=25 # sayfalama
GET /posts?_embed=comments # ilgili yorumları dahil et
Kullanılabilir operatörler arasında lt, lte, gt, gte, eq, ne, in, contains, startsWith ve endsWith bulunur. Düz bir dosya ve tek bir komut için bu, oldukça fazla bir API'dir.
JSONPlaceholder: sıfır kurulumlu sahte bir API
Bazen bir araç bile kurmak istemezsiniz. Aynı yazar tarafından sunulan JSONPlaceholder, jsonplaceholder.typicode.com adresinde barındırılan ücretsiz bir sahte REST API'dir. Doğrudan kodunuzdan çağırırsınız:
curl https://jsonplaceholder.typicode.com/posts/1
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident",
"body": "quia et suscipit..."
}
Altı adet hazır kaynakla birlikte gelir:
/posts(100 öğe)/comments(500)/albums(100)/photos(5000)/todos(200)/users(10)
POST, PUT, PATCH ve DELETE isteklerini de kabul eder, ancak bir sorun var: yazma işlemleri taklittir. API, değişiklik sanki olmuş gibi gerçekçi bir yanıt döndürür, ancak hiçbir şey kaydedilmez. Sayfayı yenilediğinizde "yeni" gönderiniz kaybolur. Bu, öngörülebilir verilere karşı UI kodunu bağlamak için iyidir; gerçek bir arka uç değildir.
json-server ve JSONPlaceholder karşılaştırması
| json-server | JSONPlaceholder | |
|---|---|---|
| Kurulum | npm paketi yükle, db.json yaz |
Yok, sadece URL'yi çağır |
| Çalışma Yeri | Yerel, kendi makineniz | Barındırılmış, genel |
| Özel Veri | Evet, kendi kaynaklarınız | Hayır, sabit kaynaklar |
| Yazma Kalıcılığı | Evet, db.json'a |
Hayır, taklit edilir |
| En İyisi İçin | Kendi yapılarınızla prototipleme | Hızlı demolar ve öğrenme |
Şu an acil verilere ihtiyacınız olduğunda ve verinin ne olduğu önemli olmadığında JSONPlaceholder'ı tercih edin. Kendi kaynaklarınıza ve kalıcı yazma işlemlerine ihtiyacınız olduğunda ise json-server'ı tercih edin.
Bu araçların yetersiz kaldığı noktalar
json-server ve JSONPlaceholder tek bir konuda mükemmeldir: JSON'u hızlı bir şekilde sunmak. Bir proje solo prototip aşamasını geçtiğinde sorunlar ortaya çıkmaya başlar.
- Gerçek doğrulama yok. Bir şemayı zorunlu kılmazlar. Sayı beklenen bir yere metin gönderirseniz, mutlu bir şekilde depolanır. Gerçek API'niz bunu reddederdi.
- Dinamik veya akıllı veri yok. Yanıtlar, dosyanın içinde ne varsa odur. İstek başına yeni bir rastgele e-posta veya gelecekteki bir tarihi döndürmenin yerleşik bir yolu yoktur.
- Yerel ve tek kullanıcılı. json-server dizüstü bilgisayarınızda çalışır. Bir ekip arkadaşı veya CI işi
localhost:3000adresine erişemez. JSONPlaceholder paylaşılır, ancak onu özelleştiremezsiniz. - Spesifikasyonunuzdan uzaklaşma. Sahte veriler ayrı bir dosyada bulunur, OpenAPI sözleşmenizden bağımsızdır, bu nedenle API geliştikçe ikisi birbirinden uzaklaşır.
- Sahte yazmalar (JSONPlaceholder). Bir sepet veya çok adımlı bir akış gibi durum bilgisi olan hiçbir şey bununla test edilemez.
Eğer düz bir dosyanın ötesine geçtiyseniz, REST uç noktalarını taklit etme araçları ve ücretsiz ve ucuz API mock sunucuları hakkındaki özetlerimiz bir sonraki seviyeyi kapsar ve çevrimiçi API taklit araçlarının karşılaştırması barındırılan seçenekleri yan yana koyar.
Gerçek bir mock sunucusuna ne zaman geçilmeli?
Şema bilincine sahip bir mock, yukarıdaki her sınırlamayı düzeltir. İşte Apidog'un json-server'dan devraldığı yer burasıdır.

- Dosya tabanlı değil, şema tabanlı. Bir uç nokta tanımlayın (veya OpenAPI spesifikasyonunuzu içe aktarın) ve Apidog onu otomatik olarak taklit eder. Mock ve sözleşme aynı tanım oldukları için senkronize kalır.
- Akıllı, dinamik veri. Apidog alan adlarını ve türlerini okur ve gerçekçi değerler döndürür: bir
emailalanı için geçerli bir e-posta,createdAtiçin bir tarih,priceiçin bir sayı. Tam kontrol için her alan için Faker tarzı kurallar ekleyebilirsiniz. Apidog'da Faker.js kılavuzumuz ve daha geniş kapsamlı test verisi oluşturucu açıklamamız gerçekçi değerler üretme konusunda daha derinlemesine bilgi verir. - Paylaşılabilir bir bulut URL'si. Apidog, mock için tüm ekibinizin ve CI hattınızın çağırabileceği, sadece
localhostdeğil, barındırılan bir URL sağlar. - Node gerektirmez. Proje başına kurulacak bir paket ve bakılması gereken bir
db.jsonyoktur.
Apidog'da aynı API'yi taklit edin
- Apidog'u indirin ve bir proje oluşturun veya açın.
- Örneğin
GET /postsgibi bir uç nokta ekleyin ve yanıt şemasını tanımlayın (veya mevcut bir OpenAPI dosyasını içe aktarın). - Apidog bir mock URL'si oluşturur ve her alan için akıllı, gerçekçi verileri hemen döndürmeye başlar.
- Belirli değerlere mi ihtiyacınız var? Çıktıyı sabitlemek için her alan için bir mock kuralı ekleyin.
- Mock URL'sini ekibinizle paylaşın veya test paketinize ve CI'nize bırakın.

json-server'ın "dakikalar içinde API" hızını korurken, doğrulama, dinamik veriler ve herkesin erişebileceği bir URL kazanırsınız.
Sıkça Sorulan Sorular
json-server ücretsiz mi? Evet, açık kaynaklı ve kullanımı ücretsizdir. JSONPlaceholder da ücretsizdir.
json-server verileri kalıcı hale getirir mi? Evet. POST, PUT, PATCH ve DELETE, db.json dosyanıza geri yazar, böylece sunucu çalışırken değişiklikler istekler arasında kalıcı olur. JSONPlaceholder yazma işlemlerini taklit eder ve hiçbir şeyi kaydetmez.
json-server'ı üretimde kullanabilir miyim? Hayır. Prototipleme ve test için yapılmıştır. Gerçek bir doğrulama, kimlik doğrulama veya ölçeklenebilirlik hikayesi yoktur.
json-server ile Apidog gibi bir mock sunucusu arasındaki fark nedir? json-server statik bir dosyayı API olarak sunar. Apidog, API şemanızdan mock yapar, dinamik gerçekçi veriler döndürür ve paylaşılan bir bulut URL'si sunar. Bağlam için mock API'nin ne olduğuna ve REST taklit araçlarının özetine bakın.
Statik satırlar yerine gerçekçi sahte verileri nasıl alırım? Bir jeneratör kullanın. Bir test verisi jeneratörü çeşitli, gerçekçi kayıtlar oluşturur ve Apidog'un mock'u bunu şemanızdan otomatik olarak yapar.
Kısa versiyon
json-server, tek bir komutla bir JSON dosyasını çalışan bir REST API'ye dönüştürür ve JSONPlaceholder, hiçbir kurulum gerektirmeyen barındırılan sahte bir API sunar. Her ikisi de hızlıca engelleri aşmak için mükemmeldir. Şema doğrulaması, dinamik veriler, kalıcı durum ve ekibinizin gerçekten erişebileceği bir URL'ye ihtiyacınız olduğunda, düz bir dosya yeterli değildir. İşte bu noktada Apidog'un mock sunucusu devreye girer. Apidog'u indirin, spesifikasyonunuzu içe aktarın ve mock'unuz ilk istekten itibaren gerçek sözleşmeyle eşleşir.
