DEV Community

Cover image for Alat CLI Ringan Terbaik untuk Mocking API
Walse
Walse

Posted on • Originally published at apidog.com

Alat CLI Ringan Terbaik untuk Mocking API

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.

Coba Apidog hari ini

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 npx biasanya 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
Enter fullscreen mode Exit fullscreen mode

Perintah ini menjalankan server di http://127.0.0.1:4010. Prism membaca paths, examples, dan schema dari spesifikasi Anda.

Cara kerjanya

  1. Tambahkan example pada response OpenAPI jika Anda membutuhkan payload tertentu.
  2. Jalankan Prism terhadap file spesifikasi.
  3. 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Arahkan --data ke file environment Mockoon atau file OpenAPI JSON/YAML. CLI akan langsung melayani endpoint yang didefinisikan dalam file tersebut.

Workflow praktis

  1. Buat atau ekspor environment dari Mockoon Desktop.
  2. Simpan file, misalnya mockoon-env.json, di repository.
  3. Jalankan mock secara lokal atau dalam pipeline CI.
npx @mockoon/cli start --data ./mockoon-env.json --port 3000
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Contoh penggunaan

Buat data awal:

{
  "posts": [
    {
      "id": 1,
      "title": "hello"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Tambahkan data baru:

curl -X POST http://localhost:3000/posts \
  -H "Content-Type: application/json" \
  -d '{ "title": "post baru" }'
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
const mockserver = require('mockserver-node');

mockserver.start_mockserver({
  serverPort: 1080
});
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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/
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)