Anda membutuhkan API palsu untuk pengembangan dalam tiga puluh detik—bukan layanan hosted, Docker Compose, atau GUI yang harus diklik. Cukup jalankan satu perintah, baca file lokal, lalu layani respons di localhost.
Server mock ringan melakukan tepat itu. Anda mengarahkannya ke spesifikasi OpenAPI atau file data kecil, menjalankan perintah, lalu frontend dan pengujian dapat memakai endpoint realistis saat backend asli masih dibangun. Sebagian besar opsi di bawah tersedia sebagai paket npx atau biner tunggal; opsi JVM lebih berat, tetapi berguna saat Anda membutuhkan pencocokan request tingkat lanjut atau perilaku stateful.
Panduan ini membandingkan enam mocker berbasis CLI, dari yang paling cepat dijalankan hingga alur kerja terintegrasi melalui Apidog CLI. Jika Anda juga ingin mengevaluasi opsi GUI atau hosted, lihat rangkuman alat mock API terbaik.
Apa yang membuat alat mock CLI ringan?
"Ringan" berarti minim jejak dan gesekan operasional, bukan sekadar sedikit fitur. Evaluasi alat berdasarkan empat hal berikut:
-
Ukuran instalasi dan runtime. Paket Node yang dijalankan dengan
npxbiasanya hanya membutuhkan beberapa megabyte. Server JVM mandiri membutuhkan file JAR dan runtime Java. - Waktu startup. Untuk workflow lokal, server idealnya aktif sebelum Anda kembali ke editor.
- Konfigurasi menuju respons pertama. Alat paling ringan cukup membutuhkan satu file dan satu perintah.
- Berorientasi terminal. Tanpa akun, dashboard, atau langkah GUI dalam loop pengembangan. Alat harus mudah dipakai dalam shell script dan CI.
Urutan berikut dimulai dari opsi npx yang paling ringan: Prism, Mockoon CLI, dan json-server.
Prism (Stoplight)
Gunakan Prism jika Anda sudah memiliki spesifikasi OpenAPI dan ingin server mock yang tetap mengikuti kontrak API.
npx @stoplight/prism-cli mock ./openapi.yaml
Perintah ini menjalankan server di http://127.0.0.1:4010. Prism membaca paths, examples, dan schema dari spesifikasi Anda.
Cara kerjanya
- Tambahkan
examplepada response OpenAPI jika Anda membutuhkan payload tertentu. - Jalankan Prism terhadap file spesifikasi.
- Panggil endpoint seperti API biasa dari frontend atau test suite.
Jika Anda tidak menambahkan contoh respons, Prism dapat membuat respons acak yang tetap valid terhadap schema. Prism juga memvalidasi request masuk terhadap spesifikasi, sehingga request yang salah format akan menghasilkan 422.
Untuk instalasi global:
npm install -g @stoplight/prism-cli
prism mock ./openapi.yaml
Terbaik untuk: tim yang mengutamakan spesifikasi dan ingin mock selalu sesuai kontrak. Prism berlisensi Apache-2.0 serta mendukung OpenAPI 3.1, 3.0, 2.0, dan koleksi Postman.
Batasan: Prism bersifat stateless. Request POST tidak akan menyimpan data untuk dipakai oleh request berikutnya. Kualitas mock juga bergantung pada kualitas spesifikasi dan contoh respons Anda. Ini cocok untuk workflow yang berfokus pada kontrak, termasuk penggunaan alat mocking REST API.
Mockoon CLI
Mockoon CLI menjalankan API mock dari file environment Mockoon atau spesifikasi OpenAPI. Anda dapat mendesain rute menggunakan aplikasi desktop Mockoon, lalu menjalankan environment yang sama secara headless di CI atau server.
npx @mockoon/cli start --data ./mockoon-env.json --port 3000
Arahkan --data ke file environment Mockoon atau file OpenAPI JSON/YAML. CLI akan langsung melayani endpoint yang didefinisikan dalam file tersebut.
Workflow praktis
- Buat atau ekspor environment dari Mockoon Desktop.
- Simpan file, misalnya
mockoon-env.json, di repository. - Jalankan mock secara lokal atau dalam pipeline CI.
npx @mockoon/cli start --data ./mockoon-env.json --port 3000
Jika file environment berasal dari versi Mockoon lama, CLI memigrasikannya di memori tanpa mengubah file asli.
Untuk instalasi global:
npm install -g @mockoon/cli
mockoon-cli start --data ./mockoon-env.json --port 3000
Terbaik untuk: tim yang ingin mendesain mock secara visual tetapi menjalankannya secara headless. Mockoon berlisensi MIT dan menyediakan citra Docker resmi.
Batasan: rute paling kaya biasanya dibuat melalui aplikasi desktop. Mengedit file environment JSON secara manual dapat menjadi rumit. Jika Anda ingin seluruh konfigurasi ditulis langsung dalam satu file sederhana, Prism atau json-server lebih praktis.
json-server
Gunakan json-server saat Anda belum memiliki spesifikasi OpenAPI tetapi membutuhkan backend REST yang berfungsi cepat. Anda cukup membuat file JSON; json-server akan menghasilkan endpoint CRUD di atas data tersebut.
echo '{ "posts": [{ "id": 1, "title": "hello" }] }' > db.json
npx json-server db.json
Server akan menyediakan endpoint berikut:
GET http://localhost:3000/posts
POST http://localhost:3000/posts
PUT http://localhost:3000/posts/:id
PATCH http://localhost:3000/posts/:id
DELETE http://localhost:3000/posts/:id
Contoh penggunaan
Buat data awal:
{
"posts": [
{
"id": 1,
"title": "hello"
}
]
}
Tambahkan data baru:
curl -X POST http://localhost:3000/posts \
-H "Content-Type: application/json" \
-d '{ "title": "post baru" }'
Request tersebut benar-benar menambahkan data dan menuliskannya kembali ke db.json. Artinya, Anda mendapatkan perilaku stateful tanpa konfigurasi tambahan.
json-server juga mendukung filtering, sorting, dan pagination melalui parameter query. Baris 1.x mengamati file dan memuat ulang perubahan secara default.
Untuk instalasi global:
npm install -g json-server
Terbaik untuk: frontend developer yang membutuhkan backend REST fungsional sebelum API asli tersedia. json-server berlisensi MIT dan merupakan salah satu opsi server mock ringan untuk RESTful API yang tidak membutuhkan spesifikasi.
Batasan: json-server mengasumsikan bentuk API REST berbasis resource. Endpoint non-REST, routing yang sangat kustom, atau pencocokan header yang ketat tidak dapat ditangani sebersih alat berbasis ekspektasi. Ini adalah alat prototipe, bukan validator kontrak.
MockServer
MockServer cocok saat Anda perlu mencocokkan request secara presisi: method, path, header, query parameter, atau body. Setelah request cocok, Anda dapat menentukan respons, penundaan, maupun kegagalan untuk menguji timeout dan error handling.
Jalankan server mandiri:
java -jar mockserver-netty-5.15.0-no-dependencies.jar -p 1080
MockServer akan aktif pada port 1080. Selanjutnya, kirim ekspektasi ke REST API MockServer atau kelola secara terprogram.
Untuk proyek Node.js, gunakan wrapper resmi:
npm install mockserver-node
const mockserver = require('mockserver-node');
mockserver.start_mockserver({
serverPort: 1080
});
Kapan menggunakan MockServer?
Gunakan MockServer jika pengujian Anda perlu memastikan bahwa client mengirim:
- HTTP method yang benar
- path yang tepat
- header autentikasi tertentu
- query parameter spesifik
- request body dengan struktur tertentu
Terbaik untuk: pengujian integrasi yang membutuhkan kontrol detail atas request dan respons. MockServer berlisensi Apache-2.0 dan mendukung HTTP, HTTPS, serta protokol lainnya pada satu port.
Batasan: MockServer berbasis JVM, sehingga lebih berat dan biasanya memulai lebih lambat daripada opsi Node. Mendefinisikan ekspektasi juga lebih verbose daripada sekadar menunjuk ke file OpenAPI. Jika kebutuhan Anda hanya menyajikan spesifikasi, Prism lebih sederhana. Untuk trade-off lain, lihat perbandingan alternatif MockServer.
WireMock (mandiri)
WireMock adalah server mock JVM yang populer dalam ekosistem Java. File JAR mandirinya menjalankan mesin yang sama dengan yang dapat Anda embed dalam pengujian JUnit, sehingga mock lokal dan mock dalam test suite dapat memakai pendekatan yang sama.
java -jar wiremock-standalone.jar --port 8080
WireMock akan berjalan pada port 8080. Anda dapat menambahkan stub melalui direktori mappings/ atau JSON API WireMock.
Contoh struktur stub
.
├── mappings/
│ └── get-user.json
└── __files/
WireMock juga dapat merekam traffic dari API asli lalu memutarnya kembali sebagai stub. Fitur ini berguna saat Anda melakukan mocking API pihak ketiga yang tidak Anda kontrol. Untuk CI, tersedia citra Docker resmi wiremock/wiremock.
Terbaik untuk: tim JVM yang ingin berbagi mesin mocking antara pengembangan lokal dan suite pengujian, termasuk kebutuhan record-and-replay. WireMock berlisensi Apache-2.0.
Batasan: seperti MockServer, WireMock membutuhkan Java dan lebih lambat untuk dimulai dibandingkan opsi Node. File JSON stub-nya kuat, tetapi membutuhkan lebih banyak pembelajaran daripada mock berbasis satu file data. Jika workflow Anda lebih browser-first, lihat alternatif Mock Service Worker (MSW).
Apidog CLI
Alat-alat sebelumnya berfokus pada satu bagian dari workflow mocking. Apidog mengambil pendekatan terintegrasi: desain API, mock, pengujian, dan dokumentasi berada dalam satu proyek. Apidog CLI memungkinkan Anda mengelola proyek tersebut dari terminal.
Apidog bukan open source; ini adalah produk komersial dengan tingkatan gratis. Namun, kombinasi project workspace dan CLI dapat mengurangi kebutuhan untuk menjalankan server mock, test runner, dan alat spesifikasi secara terpisah.
Apidog dapat menghasilkan mock cerdas dari endpoint yang Anda definisikan. Respons mengikuti tipe field dan penamaan schema, sehingga field seperti phone dapat menghasilkan nomor telepon yang relevan, bukan string acak. Untuk respons khusus terhadap request tertentu, tambahkan mock expectation ke proyek.
npm install -g apidog-cli
apidog login --with-token <YOUR_TOKEN>
apidog mock --help
Grup perintah mock mengelola mock expectation proyek dari script dan CI. CLI juga memiliki grup perintah untuk endpoint, schema, environment, dan test run. Output-nya berupa JSON terstruktur dengan field agentHints.nextSteps, sehingga dapat digunakan oleh manusia maupun agen AI.
Lihat detail command di panduan lengkap Apidog CLI.
Terbaik untuk: tim yang ingin menyimpan mock, spesifikasi, dan pengujian dalam satu proyek. Unduh Apidog untuk mencoba server mock bawaan dan CLI dalam proyek Anda.
Batasan: ini adalah platform, bukan biner satu tujuan. Anda membutuhkan project dan login, tidak seperti json-server yang dapat langsung dipakai dari satu file. Jika hanya membutuhkan mock sekali pakai, alat yang lebih ringan lebih tepat. Jika API Anda sudah didesain di Apidog, mock sudah tersedia dalam workflow yang sama.
Cara memilih
Pilih berdasarkan input dan tingkat kontrol yang Anda butuhkan:
| Alat | Terbaik untuk | Instalasi | Open source? | Catatan |
|---|---|---|---|---|
| Prism | Menyajikan spesifikasi OpenAPI sebagai mock | npx @stoplight/prism-cli |
Ya (Apache-2.0) | Akurat secara kontrak, stateless, port 4010 |
| Mockoon CLI | Menjalankan mock buatan GUI secara headless | npx @mockoon/cli |
Ya (MIT) | Membaca file environment atau OpenAPI, tersedia citra Docker |
| json-server | Membuat REST API instan dari JSON | npx json-server |
Ya (MIT) | CRUD stateful, tanpa spesifikasi, port 3000 |
| MockServer | Pencocokan request yang presisi | java -jar mockserver-netty-*.jar |
Ya (Apache-2.0) | JVM, wrapper npm tersedia, port 1080 |
| WireMock | Pengembangan dan pengujian JVM dengan satu mesin | java -jar wiremock-standalone.jar |
Ya (Apache-2.0) | Record-and-replay, citra Docker, port 8080 |
| Apidog CLI | Mock, spesifikasi, dan pengujian dalam satu proyek | npm install -g apidog-cli |
Tidak, tersedia tingkatan gratis | Mock cerdas otomatis dan expectation terkelola |
Gunakan aturan praktis berikut:
- Sudah punya OpenAPI: pilih Prism atau Mockoon CLI.
- Belum punya spesifikasi: pilih json-server.
- Butuh validasi dan pencocokan request detail: pilih MockServer atau WireMock.
- Ingin mock terhubung dengan desain API dan pengujian: pilih Apidog.
Untuk memahami kapan mocking benar-benar memberikan nilai, baca panduan kasus penggunaan mocking API.
Kesimpulan
Mocking ringan bergantung pada apa yang sudah Anda miliki:
- Masukkan spesifikasi OpenAPI ke Prism atau Mockoon CLI.
- Masukkan data awal ke json-server.
- Gunakan MockServer atau WireMock untuk pencocokan request yang ketat.
- Gunakan Apidog jika Anda ingin mock berada bersama desain dan pengujian API.
Keenam alat ini dapat dijalankan dari terminal dan dimasukkan ke workflow CI. Mulailah dari opsi terkecil yang memenuhi kebutuhan Anda, lalu tambah kompleksitas hanya ketika benar-benar dibutuhkan. Untuk workflow terintegrasi, unduh Apidog dan buat server mock dari desain API Anda.
Top comments (0)