DEV Community

Cover image for Alat CLI Ringan Terbaik untuk Pengembangan
Walse
Walse

Posted on • Originally published at apidog.com

Alat CLI Ringan Terbaik untuk Pengembangan

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.

Coba Apidog hari ini

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

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

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

Perintah tersebut mengirim body berikut:

{
  "name": "apidog",
  "role": "api-tool",
  "active": true
}
Enter fullscreen mode Exit fullscreen mode

Sintaks penting:

  • name=value untuk string.
  • active:=true untuk nilai JSON mentah.
  • Authorization:Bearer token untuk header.

Contoh request dengan header:

http GET https://api.example.com/users \
  Authorization:"Bearer $TOKEN"
Enter fullscreen mode Exit fullscreen mode

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

Gunakan pola yang sama seperti HTTPie:

xh GET https://api.example.com/users \
  Authorization:"Bearer $TOKEN"
Enter fullscreen mode Exit fullscreen mode

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

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

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

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

Buat pull request dari branch saat ini:

gh pr create \
  --title "Add rate limiting" \
  --body "Closes #42" \
  --base main
Enter fullscreen mode Exit fullscreen mode

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

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

Setelah dijalankan, arahkan provider webhook ke URL https:// yang ditampilkan oleh ngrok.

Untuk memeriksa request yang masuk, buka:

http://127.0.0.1:4040
Enter fullscreen mode Exit fullscreen mode

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

Langkah implementasi:

  1. Jalankan mkcert -install sekali untuk membuat dan memasang certificate authority lokal.
  2. Buat sertifikat untuk hostname yang dipakai aplikasi.
  3. Konfigurasikan server development atau reverse proxy dengan file sertifikat dan private key yang dihasilkan.

Contoh hostname lokal:

mkcert api.localhost app.localhost
Enter fullscreen mode Exit fullscreen mode

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

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

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

Aplikasi Anda kemudian dapat terhubung ke:

postgres://postgres:dev@localhost:5432/postgres
Enter fullscreen mode Exit fullscreen mode

Contoh Redis sementara:

docker run --rm -p 6379:6379 redis:7
Enter fullscreen mode Exit fullscreen mode

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

Jalankan skenario test pada environment tertentu:

apidog run -t <scenario_id> -e <env_id> -r cli
Enter fullscreen mode Exit fullscreen mode

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

CLI ini juga mencakup command group untuk:

  • endpoint dan schema untuk desain API.
  • import dan export untuk spesifikasi OpenAPI, Swagger, atau Postman.
  • mock untuk ekspektasi mock.
  • environment dan variables untuk 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'
Enter fullscreen mode Exit fullscreen mode

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)