Sebagian besar hari pengembang backend diisi siklus cepat: kirim permintaan ke endpoint, baca JSON, ubah kode, lalu ulangi. Jika GUI berat memperlambat siklus ini, gunakan CLI yang bisa dipanggil langsung dari terminal, skrip shell, dan pipeline CI.
Alat CLI ringan biasanya hadir sebagai satu biner atau paket yang dapat dijalankan dengan npx, memulai dengan cepat, dan mudah dikomposisikan melalui stdin, stdout, serta exit code. Artikel ini membahas 10 alat praktis untuk mengirim request, memproses respons, mengekspos port lokal, menjalankan ulang proses, dan menguji API. Untuk konteks yang lebih luas, lihat panduan pengembangan API.
Apa yang membuat CLI benar-benar ringan?
Ukuran biner bukan satu-satunya ukuran. Untuk workflow backend, CLI ringan harus memenuhi empat kriteria:
- Instalasi cepat: satu biner statis atau paket kecil lebih praktis daripada alat yang menarik runtime, proyek, dan lockfile tambahan.
- Startup cepat: penting saat perintah dipanggil berulang dalam loop, hook, atau CI.
- Cepat menghasilkan output: idealnya dapat dipakai tanpa akun, dashboard, atau konfigurasi proyek terlebih dahulu.
- Komposabel: dapat menerima input dari stdin, mengirim output ke stdout, dan mengembalikan exit code yang bisa dipakai skrip.
Alat berikut diurutkan dari yang paling sederhana hingga yang lebih lengkap. curl umumnya sudah tersedia di mesin Anda.
1. curl
curl adalah baseline untuk request HTTP dari terminal. Gunakan untuk health check, debugging endpoint, atau request yang perlu dijalankan dalam CI.
curl -s -X POST https://api.github.com/repos/curl/curl/issues \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Test issue"}'
Flag yang sering dipakai:
# Sertakan header respons
curl -i https://api.example.com/health
# Cetak hanya HTTP status code
curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/health
# Gagal dengan exit code non-zero pada respons 4xx/5xx
curl --fail https://api.example.com/health
Terbaik untuk: scripting, health check CI, dan request yang mudah dibagikan sebagai satu perintah.
Keterbatasan: flag dapat menjadi panjang, dan body JSON perlu ditulis manual.
2. HTTPie
HTTPie menyediakan sintaks request yang lebih mudah dibaca daripada curl. JSON, format output, dan warna terminal sudah menjadi default.
http POST httpbin.org/post name=apidog role=api-tool active:=true
Perintah tersebut mengirim body berikut:
{
"name": "apidog",
"role": "api-tool",
"active": true
}
Sintaks penting:
-
name=valueuntuk string. -
active:=trueuntuk nilai JSON mentah. -
Authorization:Bearer tokenuntuk header.
Contoh request dengan header:
http GET https://api.example.com/users \
Authorization:"Bearer $TOKEN"
Terbaik untuk: eksplorasi API interaktif saat keterbacaan request penting.
Keterbatasan: berbasis Python, sehingga membutuhkan runtime Python dan startup-nya lebih lambat daripada biner native.
3. xh
xh menawarkan sintaks mirip HTTPie dalam satu biner Rust. Ini cocok bila Anda menyukai gaya key=value, tetapi ingin instalasi tanpa runtime Python.
xh POST httpbin.org/post name=apidog age:=24
Gunakan pola yang sama seperti HTTPie:
xh GET https://api.example.com/users \
Authorization:"Bearer $TOKEN"
Karena dikirim sebagai biner tunggal, xh praktis untuk image CI ramping dan kontainer. Proyek xh di GitHub menyediakan biner untuk Linux, macOS, dan Windows.
Terbaik untuk: request interaktif dan skrip yang membutuhkan startup cepat.
Keterbatasan: tidak mencakup setiap plugin HTTPie, meskipun fitur request umum tersedia.
4. jq
jq adalah pasangan penting untuk curl, xh, atau HTTPie. Gunakan untuk mengambil, memfilter, dan mentransformasi JSON tanpa menulis skrip parsing sendiri.
curl -s https://api.github.com/repos/stedolan/jq | jq '.stargazers_count'
Contoh pola yang sering dipakai:
# Ambil semua nama dari array items
jq '.items[] | .name' response.json
# Filter object aktif
jq '.users[] | select(.active)' response.json
# Ambil output string tanpa tanda kutip
TOKEN=$(jq -r '.access_token' response.json)
Workflow sederhana untuk mengambil ID lalu memakainya pada request lain:
USER_ID=$(curl -s https://api.example.com/users/me | jq -r '.id')
curl -s "https://api.example.com/users/$USER_ID/orders" | jq '.items[] | .status'
Terbaik untuk: ekstraksi data JSON di shell script dan CI.
Keterbatasan: query yang sangat bersarang dapat sulit dibaca. Namun, untuk akses field sederhana, jq sangat efisien.
5. gh (GitHub CLI)
gh membawa operasi GitHub ke terminal. Login sekali, lalu gunakan untuk membuat pull request, memantau CI, atau memanggil GitHub API tanpa mengelola header token manual.
gh auth login
Buat pull request dari branch saat ini:
gh pr create \
--title "Add rate limiting" \
--body "Closes #42" \
--base main
Perintah praktis lain:
# Pantau status check pull request
gh pr checks
# Pantau GitHub Actions secara langsung
gh run watch
# Panggil endpoint GitHub API
gh api repos/OWNER/REPO/issues
Terbaik untuk: otomasi pull request, rilis, GitHub Actions, dan API GitHub.
Keterbatasan: hanya relevan untuk workflow GitHub.
6. ngrok
ngrok mengekspos port lokal Anda ke URL publik melalui tunnel aman. Ini sangat berguna saat menguji webhook, OAuth callback, atau integrasi pihak ketiga yang harus memanggil server lokal.
ngrok http 8080
Setelah dijalankan, arahkan provider webhook ke URL https:// yang ditampilkan oleh ngrok.
Untuk memeriksa request yang masuk, buka:
http://127.0.0.1:4040
Gunakan inspector tersebut untuk melihat header, body, respons, atau memutar ulang request saat debugging webhook.
Terbaik untuk: webhook, callback pihak ketiga, dan membagikan server development.
Keterbatasan: layanan komersial dengan paket gratis; URL dapat berubah antar-sesi dan memiliki batasan penggunaan.
7. mkcert
mkcert membuat sertifikat HTTPS lokal yang dipercaya browser dan sistem operasi Anda. Gunakan saat perlu menguji secure cookie, OAuth redirect URI, service worker, atau fitur yang hanya aktif di HTTPS.
mkcert -install
mkcert localhost 127.0.0.1 myapp.local
Langkah implementasi:
- Jalankan
mkcert -installsekali untuk membuat dan memasang certificate authority lokal. - Buat sertifikat untuk hostname yang dipakai aplikasi.
- Konfigurasikan server development atau reverse proxy dengan file sertifikat dan private key yang dihasilkan.
Contoh hostname lokal:
mkcert api.localhost app.localhost
Terbaik untuk: HTTPS lokal yang mendekati perilaku produksi.
Keterbatasan: hanya untuk development. Jangan gunakan sertifikat atau CA mkcert di lingkungan produksi.
8. watchexec
watchexec menjalankan ulang perintah saat file berubah. Gunakan untuk memperpendek siklus edit-test tanpa bergantung pada watcher khusus framework.
watchexec -e py -r 'pytest tests/'
Contoh untuk stack lain:
# Server Go
watchexec -r 'go run .'
# Test JavaScript
watchexec 'npm test'
# Jalankan ulang server Node saat file JavaScript berubah
watchexec -e js,json -r 'node server.js'
-e py membatasi file yang dipantau ke ekstensi Python, sedangkan -r menghentikan proses lama sebelum menjalankan proses baru.
Terbaik untuk: test loop dan restart server lokal lintas bahasa.
Keterbatasan: menjalankan ulang proses, bukan hot-module reload atau pelestarian state proses.
9. Docker CLI
Docker CLI memang lebih berat dibanding alat lain dalam daftar ini, tetapi sangat berguna untuk menjalankan dependency lokal yang dapat dibuang, seperti Postgres atau Redis.
docker run --rm \
-e POSTGRES_PASSWORD=dev \
-p 5432:5432 \
postgres:16
Aplikasi Anda kemudian dapat terhubung ke:
postgres://postgres:dev@localhost:5432/postgres
Contoh Redis sementara:
docker run --rm -p 6379:6379 redis:7
Gunakan --rm agar container dihapus otomatis setelah dihentikan. Dengan pola ini, Anda dapat menjalankan dependency bersih untuk setiap sesi development atau integration test.
Terbaik untuk: database, cache, queue, dan dependency lokal yang dapat direproduksi.
Keterbatasan: membutuhkan Docker daemon, disk, dan memori. Namun, workflow CLI-nya tetap mudah diotomatisasi.
10. apidog-cli
Setelah request API dapat dijalankan dari terminal, kebutuhan berikutnya adalah menjalankan resource proyek API yang sebenarnya: endpoint, schema, environment, mock, dan skenario test. Apidog menyediakan apidog-cli untuk menghubungkan workflow tersebut ke terminal dan CI.
Instal lalu autentikasi:
npm install -g apidog-cli
apidog login --with-token <YOUR_TOKEN>
Jalankan skenario test pada environment tertentu:
apidog run -t <scenario_id> -e <env_id> -r cli
apidog run menampilkan hasil setiap langkah di terminal dan mengembalikan exit code non-zero jika assertion gagal. Karena itu, perintah ini dapat langsung dipakai sebagai quality gate di CI.
Contoh tahap CI sederhana:
apidog login --with-token "$APIDOG_TOKEN"
apidog run -t "$SCENARIO_ID" -e "$ENV_ID" -r cli
CLI ini juga mencakup command group untuk:
-
endpointdanschemauntuk desain API. -
importdanexportuntuk spesifikasi OpenAPI, Swagger, atau Postman. -
mockuntuk ekspektasi mock. -
environmentdanvariablesuntuk konfigurasi environment.
Output JSON terstruktur dengan agentHints.nextSteps, sehingga cocok juga untuk asisten koding AI yang melakukan pengembangan API. Lihat panduan Apidog CLI lengkap untuk referensi command, atau ikuti panduan instalasi Apidog CLI untuk menjalankan workflow pertama.
Terbaik untuk: menjalankan skenario API di CI dan mengelola resource proyek dari skrip, terutama dalam workflow pengembangan API yang mengutamakan spesifikasi.
Catatan: Apidog bukan sumber terbuka dan tersedia dalam model komersial dengan tingkatan gratis. Bagian ringan dari workflow ini adalah apidog-cli; platform Apidog lengkap menyediakan GUI untuk proyek yang sama.
Cara memilih alat
Sebagian besar alat ini saling melengkapi. Workflow backend yang efektif biasanya menggabungkan klien HTTP, parser JSON, tunnel, watcher, serta test runner.
| Alat | Terbaik untuk | Instal | Sumber terbuka? |
|---|---|---|---|
| curl | Request skrip, health check CI | Sudah terinstal | Ya (lisensi curl) |
| HTTPie | Request interaktif yang mudah dibaca | pip install httpie |
Ya (BSD) |
| xh | Sintaks HTTPie dengan startup native |
cargo install xh / biner |
Ya (MIT) |
| jq | Memfilter respons JSON |
brew install jq / biner |
Ya (MIT) |
| gh | Skrip PR dan CI GitHub |
brew install gh / biner |
Ya (MIT) |
| ngrok | Mengekspos localhost dan webhook | Unduh biner | Tidak (freemium) |
| mkcert | Sertifikat HTTPS lokal tepercaya |
brew install mkcert / biner |
Ya (BSD) |
| watchexec | Menjalankan ulang saat file berubah | cargo install watchexec-cli |
Ya (Apache-2.0) |
| Docker CLI | Layanan pendukung sekali pakai | Instalasi Docker | Ya (Apache-2.0) |
| apidog-cli | Menjalankan skenario test dan mengelola proyek | npm install -g apidog-cli |
Tidak (freemium) |
Pilih berdasarkan pekerjaan:
- Kirim request interaktif: xh atau HTTPie.
- Jalankan request dari skrip atau CI: curl.
- Baca dan ekstrak respons JSON: jq.
- Ekspos server lokal: ngrok.
- Jalankan HTTPS lokal: mkcert.
- Jalankan ulang server atau test saat menyimpan file: watchexec.
- Jalankan dependency lokal: Docker CLI.
- Jalankan test API dan resource proyek dari CI: apidog-cli.
Ringkasan
Toolchain backend yang ringan tidak harus terdiri dari satu alat besar. Gunakan alat kecil yang dapat digabungkan:
curl -s https://api.example.com/users \
| jq '.items[] | select(.active) | .email'
curl atau xh mengirim request, jq memproses JSON, ngrok dan mkcert menangani akses lokal, watchexec mempercepat loop edit-run, dan Docker menyediakan dependency sekali pakai.
apidog-cli menghubungkan workflow terminal tersebut ke proyek API tim Anda, sehingga endpoint dan skenario test yang dijalankan di CI tetap selaras dengan kontrak API. Unduh Apidog untuk menyiapkan proyek, lalu jalankan test melalui CLI di pipeline CI Anda.
Top comments (0)