Bruno adalah klien API sumber terbuka yang ringan, Git-native, dan desain tersebut membuatnya cepat dan mudah untuk di-versi-kan. Namun, ini menyisakan celah yang cepat ditemukan tim: tidak ada cara untuk membuat mock endpoint yang belum ada. Jika Anda mencari alternatif server mock Bruno, panduan ini menjelaskan mengapa celah tersebut ada, solusi yang digunakan orang, dan cara membuat server mock langsung dari spesifikasi OpenAPI Anda.
Jawaban singkat di awal: Bruno tidak memiliki server mock bawaan. Anda dapat mengirim permintaan dan menulis pengujian, tetapi Anda tidak dapat membuat endpoint palsu yang mengembalikan respons sampel. Untuk membuat mock, Anda menggunakan alat eksternal atau membuat server sendiri secara manual.
Mengapa Anda Membutuhkan Server Mock
Server mock mengembalikan respons realistis untuk endpoint yang belum dibuat, belum stabil, atau sulit dipicu sesuai permintaan. Ini membuka beberapa hal:
- Pengembangan paralel. Tim front-end dan mobile membangun berdasarkan kontrak sementara backend masih dalam proses. Tidak ada yang menunggu.
- Pengujian jalur kesalahan. API sungguhan jarang memberikan Anda 429 atau 503 saat Anda membutuhkannya. Sebuah mock mengembalikan status, header, atau body yang salah format sesuai perintah.
- Demo dan prototipe. Tampilkan alur kerja tanpa backend langsung, database, atau kredensial.
- CI yang stabil. Pengujian yang mengenai mock tidak rusak karena server staging down atau terkena batas laju.
Berikut adalah skenario kegagalan yang dapat Anda uji secara sengaja dengan mock, alih-alih menunggu terjadinya di lingkungan produksi:
| Skenario | Apa yang dikembalikan mock | Mengapa sulit jika tidak |
|---|---|---|
| Batas laju tercapai | 429 + header Retry-After |
Backend jarang melakukan throttling sesuai permintaan |
| Server down | 500 / 503 |
Tidak bisa merusak staging hanya untuk pengujian |
| Respons lambat | Body tertunda | Sulit mereproduksi latensi nyata |
| Set hasil kosong | 200 dengan [] |
Tergantung pada status data tertentu |
| Payload salah format | Body kehilangan bidang yang diperlukan | Validasi backend biasanya mencegahnya |
Apakah Bruno memiliki server mock?
Tidak. Bruno berfokus pada pengiriman permintaan, mengorganisir koleksi sebagai file biasa, dan menjalankan asersi. Tidak ada server mock bawaan, dan tidak ada pengaturan yang mengubah permintaan yang disimpan menjadi stub langsung. Itu adalah pilihan cakupan yang disengaja, bukan kelalaian, tetapi itu berarti mocking berada di luar alat.
Dalam praktiknya, pengguna Bruno mengatasi celah tersebut dengan dua cara:
- Alat mocking eksternal. Siapkan layanan terpisah seperti Mockoon, WireMock, Prism, atau json-server, definisikan respons di sana, lalu arahkan Bruno ke URL tersebut. Dua alat, dua sumber kebenaran.
- Server yang dibuat manual. Tulis aplikasi Express, Flask, atau FastAPI kecil yang mengembalikan JSON siap pakai. Cepat untuk satu endpoint, melelahkan untuk dipertahankan di seluruh API yang berkembang.
Keduanya berfungsi. Keduanya menambahkan bagian bergerak yang berada di luar koleksi Anda.
Biaya Mocking Tambahan
Menyematkan lapisan mock terpisah ke Bruno memang bisa dilakukan, tetapi biayanya akan terlihat seiring waktu:
- Pergeseran. Spesifikasi Anda, permintaan Bruno Anda, dan definisi mock Anda berada di tiga tempat. Mengubah satu endpoint berarti Anda memperbarui ketiganya, atau salah satunya diam-diam menjadi usang.
- Biaya pengaturan. Setiap rekan tim baru menginstal dan mengkonfigurasi alat mock sebelum mereka dapat menjalankan apa pun secara lokal.
- Penulisan respons manual. Server yang dibuat manual berarti menulis contoh payload secara manual untuk setiap bidang dan setiap kode status.
- Tidak ada data realistis. Stub statis mengembalikan
"name": "string"yang sama setiap kali, yang menyembunyikan bug yang hanya muncul dengan input yang bervariasi.
Tidak ada di antara ini yang fatal. Namun, ini adalah gesekan yang bertambah seiring berkembangnya API. Untuk melihat lebih lengkap di mana celah-celah ini bertambah, lihat ulasan kami tentang platform API all-in-one alternatif Bruno.
Hasilkan Server Mock dari Spesifikasi OpenAPI Anda
Jalur yang lebih bersih adalah mendapatkan mock dari kontrak yang sudah Anda kelola. Apidog melakukannya: impor atau tulis spesifikasi OpenAPI, dan itu akan menghasilkan server mock yang berfungsi dari definisi yang sama yang Anda gunakan untuk desain, pengujian, dan dokumentasi. Satu sumber kebenaran, bukan tiga.

Beberapa hal yang membedakannya dari alat tambahan:
- Mock cerdas dari spesifikasi. Apidog membaca nama dan tipe bidang serta mengembalikan data yang masuk akal, sehingga bidang
emailterlihat seperti email dan bidangcreated_atterlihat seperti tanggal, tanpa perlu menulis aturan. - Respons dinamis. Respons dihasilkan dari skema Anda pada setiap permintaan, sehingga Anda mendapatkan data yang bervariasi alih-alih satu contoh yang beku. Anda dapat menambahkan aturan kondisional saat Anda membutuhkan kasus tertentu.
- Pengaturan tanpa kode. Anda tidak menulis atau meng-host server terpisah. Definisikan endpoint dalam spesifikasi dan URL mock siap digunakan.
- Tetap sinkron. Perbarui spesifikasi dan mock akan diperbarui dengannya, karena keduanya berbagi satu definisi.
Karena mock, pustaka permintaan, dan dokumentasi berasal dari proyek yang sama, tidak ada tempat ketiga untuk tetap selaras. Jika alur kerja Anda berpusat pada Git, spesifikasi tetap dapat di-diff dan ditinjau, yang sangat cocok dengan alur kerja API Git-native. Untuk lebih lanjut tentang kapan mocking sangat berguna, lihat kasus penggunaan mocking API.
Cara Cepat: dari Spesifikasi ke URL Mock
Berikut adalah versi singkat tentang cara membuat mock dari spesifikasi yang sudah ada:
- Impor spesifikasi Anda. Bawa file OpenAPI (atau Swagger) Anda, atau arahkan Apidog ke URL spesifikasi. Endpoint dan skema yang ada akan masuk apa adanya.
- Buka sebuah endpoint. Setiap endpoint yang diimpor sudah memiliki skemanya, jadi mock memiliki semua yang dibutuhkan.
- Ambil URL mock. Apidog secara otomatis mengekspos endpoint mock lokal dan cloud. Tidak ada server untuk di-deploy.
- Kirim permintaan. Panggil URL mock dan Anda akan mendapatkan JSON berbentuk skema kembali, yang dihasilkan dari spesifikasi.
- Sesuaikan respons (opsional). Tambahkan aturan untuk kode status tertentu atau kasus ekstrem, seperti
429itu, ketika Anda perlu menguji jalur tertentu.
Anda mengarahkan front-end, build mobile, atau rangkaian pengujian Anda ke URL mock dan terus bergerak sementara backend menyusul.
Saat Solusi Sementara Cukup
Sejujurnya, Anda tidak selalu membutuhkan mock yang digerakkan oleh spesifikasi. Tetap gunakan Bruno ditambah alat eksternal ringan ketika:
- Anda hanya perlu membuat stub satu atau dua endpoint untuk pengujian lokal cepat.
- Tim Anda senang mempertahankan koleksi berbasis file Bruno dan tidak ingin beralih alat.
- Stub statis baik-baik saja karena Anda tidak menguji data yang bervariasi atau banyak jalur kesalahan.
- Anda sudah menjalankan Mockoon, WireMock, atau Prism dan sumber kebenaran tambahan tidak memperlambat Anda.
Pertukaran ini nyata: jalur ringan menjaga kesederhanaan Bruno tetapi membuat Anda memelihara mock secara terpisah. Jalur yang digerakkan oleh spesifikasi menghilangkan pergeseran itu dengan biaya mengadopsi platform yang lebih luas. Pilihlah berdasarkan seberapa besar API Anda berkembang.
FAQ
Apakah Bruno memiliki server mock bawaan?
Tidak. Bruno adalah klien API untuk mengirim permintaan dan menjalankan pengujian. Ia tidak memiliki server mock bawaan, jadi untuk membuat mock endpoint Anda menggunakan alat eksternal atau menulis server stub Anda sendiri dan mengarahkan Bruno ke sana.
Apa cara termudah untuk menambahkan mocking ke alur kerja ala Bruno?
Hasilkan mock dari spesifikasi OpenAPI Anda alih-alih mendefinisikannya secara terpisah. Alat seperti Apidog membaca spesifikasi dan menghasilkan URL mock yang siap digunakan, sehingga Anda mempertahankan satu sumber kebenaran di seluruh desain, mocking, pengujian, dan dokumentasi daripada memelihara definisi mock di tempat kedua.
Bisakah saya terus menggunakan Bruno dan hanya menambahkan server mock di sampingnya?
Ya. Jalankan alat mock eksternal seperti Mockoon, WireMock, atau Prism, definisikan respons di sana, dan arahkan Bruno ke URL tersebut. Ini berfungsi, tetapi spesifikasi, permintaan, dan data mock Anda berada di tempat terpisah dan dapat bergeser, yang merupakan alasan utama tim melakukan konsolidasi.
Jika mempertahankan lapisan mock terpisah mulai memakan biaya lebih dari yang dihemat, patut dicoba mock yang digerakkan oleh spesifikasi. Impor file OpenAPI Anda ke Apidog dan Anda akan memiliki URL mock yang berfungsi dalam beberapa menit, tanpa perlu server tambahan untuk di-host.
