Anda sedang membangun frontend, tetapi backend belum siap. Anda membutuhkan REST API yang mengembalikan JSON realistis sekarang juga, dengan fungsi GET, POST, PUT, dan DELETE yang berfungsi, agar Anda bisa terus melakukan koding daripada menunggu.
Itulah gunanya `json-server`. Arahkan ke satu file JSON dan ia menyediakan REST API penuh dalam hitungan detik, tanpa memerlukan kode backend. Saudaranya, JSONPlaceholder, melangkah lebih jauh lagi: sebuah API palsu yang di-host yang dapat Anda panggil tanpa perlu menginstal apapun. Panduan ini menunjukkan cara menggunakan keduanya, di mana batas kemampuan mereka, dan kapan harus beralih ke mock yang sadar skema di Apidog.
tombol
Untuk gambaran lebih besar tentang membuat endpoint palsu, lihat apa itu mock API. Di sini kami fokus pada dua alat yang pertama kali dicari oleh pengembang.
Apa itu json-server?
`json-server` adalah alat npm sumber terbuka yang mengubah file JSON biasa menjadi REST API sungguhan. Anda menulis file `db.json` yang mendeskripsikan sumber daya Anda, menjalankan satu perintah, dan Anda mendapatkan rute CRUD standar yang didukung oleh file tersebut. Permintaan tulis benar-benar memodifikasi file, sehingga data bertahan di antara permintaan selama sesi Anda.
Ini adalah cara tercepat untuk mendapatkan API yang berfungsi untuk pembuatan prototipe, pengembangan frontend, demo, dan pengujian, tanpa menyiapkan basis data atau menulis kode server. Proyek ini ada di GitHub dan banyak digunakan untuk pekerjaan ini.
Instal dan jalankan json-server
Instal dari npm:
npm install json-server
Buat file `db.json` di proyek Anda. Kunci array tingkat atas menjadi rute koleksi; objek tingkat atas menjadi rute sumber daya tunggal:
{
"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"
}
}
Mulai server:
npx json-server db.json
Secara default, ia berjalan di `http://localhost:3000`. Itu saja; Anda sekarang memiliki API yang aktif.
Catatan tentang versi: json-server v1 menghilangkan flag `--watch` yang lama, jadi `npx json-server db.json` adalah perintah saat ini. Jika Anda menggunakan versi 0.x yang lebih lama, Anda masih akan melihat `json-server --watch db.json` di tutorial.
Rute yang Anda dapatkan secara gratis
Dari `db.json` di atas, json-server menghasilkan permukaan REST yang lengkap.
Untuk array `posts`:
GET /posts
GET /posts/:id
POST /posts
PUT /posts/:id
PATCH /posts/:id
DELETE /posts/:id
Untuk objek `profile`:
GET /profile
PUT /profile
PATCH /profile
Kueri juga sudah terpasang. Sintaks v1 menggunakan titik dua untuk kondisi:
GET /posts?views:gt=100 # views lebih besar dari 100
GET /posts?views:lte=50 # views kurang dari atau sama dengan 50
GET /posts?_sort=-views # urutkan berdasarkan views, menurun
GET /posts?_page=1&_per_page=25 # paginasi
GET /posts?_embed=comments # sertakan komentar terkait
Operator yang tersedia meliputi `lt`, `lte`, `gt`, `gte`, `eq`, `ne`, `in`, `contains`, `startsWith`, dan `endsWith`. Untuk file datar dan satu perintah, itu sudah banyak API.
JSONPlaceholder: API palsu tanpa persiapan
Terkadang Anda bahkan tidak ingin menginstal alat. JSONPlaceholder, dari penulis yang sama, adalah REST API palsu gratis yang di-host di jsonplaceholder.typicode.com. Anda memanggilnya langsung dari kode Anda:
curl https://jsonplaceholder.typicode.com/posts/1
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident",
"body": "quia et suscipit..."
}
Ia dilengkapi dengan enam sumber daya siap pakai:
- `/posts` (100 item)
- `/comments` (500)
- `/albums` (100)
- `/photos` (5000)
- `/todos` (200)
- `/users` (10)
Ia juga menerima POST, PUT, PATCH, dan DELETE, tetapi inilah kendalanya: penulisan dipalsukan. API mengembalikan respons yang realistis seolah-olah perubahan terjadi, tetapi tidak ada yang disimpan. Segarkan halaman dan postingan "baru" Anda akan hilang. Itu tidak masalah untuk menghubungkan kode UI dengan data yang dapat diprediksi; itu bukan backend sungguhan.
json-server vs JSONPlaceholder
| json-server | JSONPlaceholder | |
|---|---|---|
| Penyiapan | Instal paket npm, tulis db.json |
Tidak ada, cukup panggil URL |
| Berjalan | Lokal, mesin Anda | Di-host, publik |
| Data kustom | Ya, sumber daya Anda sendiri | Tidak, sumber daya tetap |
| Penulisan bertahan | Ya, ke db.json |
Tidak, dipalsukan |
| Terbaik untuk | Pembuatan prototipe dengan bentuk Anda sendiri | Demo cepat dan pembelajaran |
Gunakan JSONPlaceholder saat Anda menginginkan data saat ini juga dan tidak peduli data apa itu. Gunakan json-server saat Anda membutuhkan sumber daya sendiri dan penulisan yang bertahan.
Di mana batas kemampuan alat-alat ini
`json-server` dan JSONPlaceholder sangat baik dalam satu hal: menyajikan JSON dengan cepat. Mereka mulai terasa kurang saat proyek tumbuh melampaui prototipe solo.
- Tidak ada validasi sungguhan. Mereka tidak menerapkan skema. Kirim string di mana seharusnya angka dan itu akan disimpan dengan senang hati. API Anda yang sebenarnya akan menolaknya.
- Tidak ada data dinamis atau cerdas. Respons adalah apa pun yang ada di dalam file. Tidak ada cara bawaan untuk mengembalikan email acak baru atau tanggal di masa depan per permintaan.
- Lokal dan pengguna tunggal. json-server berjalan di laptop Anda. Rekan tim atau pekerjaan CI tidak bisa mengakses `localhost:3000`. JSONPlaceholder dibagikan, tetapi Anda tidak dapat menyesuaikannya.
- Menyimpang dari spesifikasi Anda. Data palsu berada dalam file terpisah, terputus dari kontrak OpenAPI Anda, sehingga keduanya menyimpang seiring perkembangan API.
- Penulisan palsu (JSONPlaceholder). Apa pun yang memiliki status, seperti keranjang belanja atau alur multi-langkah, tidak dapat diuji melawannya.
Jika Anda sudah melampaui kemampuan file datar, ikhtisar kami tentang alat untuk mocking endpoint REST dan server mock API gratis dan murah mencakup tingkatan berikutnya, dan perbandingan alat mocking API online membandingkan opsi yang di-host secara berdampingan.
Kapan harus beralih ke server mock yang sesungguhnya
Mock yang sadar skema memperbaiki setiap batasan di atas. Di sinilah Apidog mengambil alih dari json-server.

- Berbasis skema, bukan berbasis file. Definisikan endpoint (atau impor spesifikasi OpenAPI Anda) dan Apidog akan memock-nya secara otomatis. Mock dan kontrak tetap sinkron karena keduanya adalah definisi yang sama.
- Data cerdas dan dinamis. Apidog membaca nama dan tipe bidang dan mengembalikan nilai-nilai yang realistis: email yang valid untuk bidang `email`, tanggal untuk `createdAt`, angka untuk `price`. Anda dapat melampirkan aturan gaya Faker per bidang untuk kontrol penuh. Panduan kami untuk Faker.js di Apidog dan panduan pembuat data uji yang lebih luas membahas lebih dalam tentang menghasilkan nilai-nilai realistis.
- URL cloud yang dapat dibagikan. Apidog memberikan mock URL yang di-host yang dapat dipanggil oleh seluruh tim Anda dan pipeline CI Anda, bukan hanya `localhost`.
- Tidak memerlukan Node. Tidak ada paket yang perlu diinstal per proyek dan tidak ada `db.json` yang perlu diawasi.
Mock API yang sama di Apidog
- Unduh Apidog dan buat atau buka proyek.
- Tambahkan endpoint, misalnya `GET /posts`, dan definisikan skema responsnya (atau impor file OpenAPI yang sudah ada).
- Apidog menghasilkan URL mock dan segera mulai mengembalikan data yang cerdas dan realistis untuk setiap bidang.
- Butuh nilai spesifik? Tambahkan aturan mock per bidang untuk menetapkan keluarannya.
- Bagikan URL mock dengan tim Anda atau masukkan ke dalam suite pengujian dan CI Anda.

Anda mempertahankan kecepatan "API dalam hitungan menit" dari json-server, dan Anda mendapatkan validasi, data dinamis, serta URL yang dapat diakses semua orang.
FAQ
Apakah json-server gratis? Ya, ini adalah sumber terbuka dan gratis untuk digunakan. JSONPlaceholder juga gratis.
Apakah json-server menyimpan data secara persisten? Ya. POST, PUT, PATCH, dan DELETE menulis kembali ke `db.json` Anda, sehingga perubahan bertahan di antara permintaan saat server berjalan. JSONPlaceholder memalsukan penulisan dan tidak menyimpan apa pun.
Bisakah saya menggunakan json-server di lingkungan produksi? Tidak. Ini dibuat untuk prototipe dan pengujian. Ia tidak memiliki validasi, otentikasi, atau cerita skalabilitas yang nyata.
Apa perbedaan antara json-server dan server mock seperti Apidog? json-server menyajikan file statis sebagai API. Apidog memock dari skema API Anda, mengembalikan data realistis yang dinamis, dan mengekspos URL cloud bersama. Lihat apa itu mock API dan ikhtisar alat mocking REST untuk konteks.
Bagaimana saya bisa mendapatkan data palsu yang realistis alih-alih baris statis? Gunakan generator. Generator data uji membuat catatan yang bervariasi dan realistis, dan mock Apidog melakukannya secara otomatis dari skema Anda.
Versi singkat
`json-server` mengubah file JSON menjadi REST API yang berfungsi dengan satu perintah, dan JSONPlaceholder memberi Anda API palsu yang di-host tanpa penyiapan sama sekali. Keduanya sempurna untuk segera melanjutkan pekerjaan. Setelah Anda membutuhkan validasi skema, data dinamis, status persisten, dan URL yang dapat diakses tim Anda, file datar tidaklah cukup. Di situlah server mock Apidog mengambil alih. Unduh Apidog, impor spesifikasi Anda, dan mock Anda akan cocok dengan kontrak asli sejak permintaan pertama.
