Perlu menguji API Anda dengan mengirimkan data JSON dari file? Berikut adalah perintah curl.

POST File JSON ke Localhost

Perintah
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -d @data.json

Ganti:

  • 8080 dengan port Anda
  • /api/endpoint dengan jalur API Anda
  • data.json dengan jalur file JSON Anda

Itu @ memberitahu curl untuk membaca dari file. Simbol

MASUKKAN Berkas JSON

Perintah
curl -X PUT http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -d @data.json

Sama seperti POST, hanya menggunakan metode PUT.

Versi Satu Baris

Perintah
curl -X POST http://localhost:8080/api/endpoint -H "Content-Type: application/json" -d @data.json

Semuanya dalam satu baris.

Tampilkan Header Respons

Perintah
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -d @data.json \
  -i

-i menyertakan header respons dalam output.

Keluaran Verbosa (Debug)

Perintah
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -d @data.json \
  -v

-v menunjukkan detail permintaan dan respons lengkap.

Dengan Otentikasi

Otentikasi Dasar:

Perintah
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -u username:password \
  -d @data.json

Token Pembawa:

Perintah
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-token-here" \
  -d @data.json

Kunci API:

Perintah
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-api-key" \
  -d @data.json

Kirim JSON Sebaris (Tanpa File)

Perintah
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -d '{"key":"value","number":123}'

Kutipan tunggal mencegah interpretasi shell.

File di Direktori Berbeda

Perintah
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -d @/path/to/data.json

Gunakan jalur absolut atau relatif.

Simpan Respons ke File

Perintah
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -d @data.json \
  -o response.json

Respons disimpan ke response.json.

Port Localhost Umum

  • 3000: Node.js, Bereaksi server pengembang
  • 8000: Server HTTP Python, Django
  • 8080: Java umum, pengembang umum
  • 5000: Labu bawaan
  • 4200: Server pengembang sudut
  • 3001: Alternatif Node.js

Pemecahan Masalah

Kesalahan "Gagal terhubung":

  • API tidak berjalan
  • Nomor port salah
  • Periksa http:// vs https://

Kesalahan "curl: tidak ada file seperti itu":

  • File JSON tidak ada
  • Jalur file salah
  • Periksa direktori saat ini dengan pwd

Tanggapan tak terduga:

  • Periksa sintaks JSON dengan cat data.json
  • Validasi JSON di jsonlint.com
  • Gunakan -v tandai untuk melihat permintaan lengkap

Contoh File JSON

Buat data.json:

Perintah
{
  "name": "Test User",
  "email": "test@example.com",
  "active": true,
  "roles": ["admin", "user"]
}

Lalu jalankan:

Perintah
curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d @data.json

Intinya

Perintah dasar POST:

Perintah
curl -X POST http://localhost:8080/api/endpoint -H "Content-Type: application/json" -d @data.json

Itu @ dibaca dari file. Ubah POST menjadi PUT untuk permintaan PUT. Tambahkan Simbol -v untuk debugging. Tambahkan -i untuk header respons.

Bekerja dengan API localhost mana pun selama pengembangan.