Dari pengujian API ke kode

Ubah curl menjadi kode aplikasi

Request API sudah berhasil diuji? Tempel perintah curl untuk membuat kode Python, JavaScript, atau PHP, lalu periksa datanya sebelum dipakai di proyek.

curlkode request
Diproses di browser
01

Tempel satu request HTTP beserta header dan body. Mendukung kutip POSIX dan sambungan baris dengan backslash.

POSTexample.com3 header
02
async function main() {
  const response = await fetch("https://example.com/api/messages", {
    method: "POST",
    headers: [
      ["Authorization", "Bearer YOUR_TOKEN"],
      ["Content-Type", "application/json"],
      ["Accept", "application/json"]
    ],
    body: "{\"message\":\"Hello from curl\",\"enabled\":true}",
    redirect: "manual",
    credentials: "omit"
  });
  console.log(response.status);
  console.log(await response.text());
}

main().catch(console.error);

Fetch di browser atau Node.js 18+

Sebelum dijalankan

  • Konverter tidak mengirim request. Kode memuat URL, header, dan kredensial input; periksa sebelum dibagikan.
  • Fetch di browser mengikuti CORS. Cookie tidak dikirim otomatis dengan credentials: omit; atur kredensial jika dibutuhkan. Pengalihan manual dapat menghasilkan respons opaque.

Tanpa akun dan tanpa menjalankan perintah. Masukan diproses di browser Anda.

Pakai kembali request hasil debugging

Perintah curl dari dokumentasi API atau DevTools berguna untuk mereproduksi masalah. Saat request yang sama perlu masuk ke skrip atau aplikasi, URL, header, dan body harus ditulis dalam format pustaka yang digunakan. Konverter ini menyiapkan kode tersebut dan memberi catatan tentang perbedaan perilaku saat dijalankan.

Cara konversi curl ke Python atau JavaScript

Tempel satu perintah curl dengan URL HTTP atau HTTPS lengkap. Pilih bahasa tujuan, periksa metode dan body, lalu salin atau unduh kode. Proses konversi berlangsung di browser dan tidak mengirim request ke API.

Pertahankan tanda kutip untuk nilai yang mengandung spasi. Jika menyalin dari DevTools, gunakan format bash. Ganti variabel shell dan substitusi perintah dengan nilai sebenarnya terlebih dahulu. Unggahan file, form multipart, dan opsi lanjutan yang tidak didukung perlu dikonfigurasi manual.

Sesuaikan output dengan lingkungan aplikasi

Python memakai Requests yang dipasang lewat pip install requests. Body teks dikirim sebagai byte UTF-8. PHP memerlukan ekstensi cURL aktif. JavaScript menggunakan Fetch di browser atau versi Node.js yang mendukungnya.

Teks JSON dipertahankan tanpa serialisasi ulang, sehingga angka besar, spasi, dan kunci duplikat tidak diubah pada tahap konversi. Alat ini tidak memvalidasi JSON. Tambahkan timeout dan penanganan error sesuai kebutuhan; Requests juga dapat membaca pengaturan proxy serta .netrc dari lingkungan.

Mengapa curl berhasil tetapi Fetch terkena CORS?

Browser menerapkan CORS dan mengelola header tertentu. Header tersebut dihilangkan dari output Fetch dan disebutkan dalam catatan. Kode memakai credentials: omit, sehingga cookie sesi browser tidak otomatis ikut terkirim. Jika header itu diperlukan, pertimbangkan Python atau PHP di sisi server.

Tanpa -L, Fetch menangani pengalihan secara manual dan browser bisa memberikan respons opaque. Saat pengalihan diaktifkan, perubahan metode serta penerusan kredensial bergantung pada pustaka tujuan. Uji rantai pengalihan di lingkungan aplikasi.

Dua nilai form dengan nama yang sama

Kedua nilai tag tetap disertakan. --data-urlencode mengodekan spasi, lalu Requests menerima body yang sudah jadi. Cara ini menjaga field berulang yang bisa tertimpa jika disimpan dalam dictionary.

curl 'https://example.com/api/tags' --data-urlencode 'tag=cloud hosting' --data-urlencode 'tag=linux'
import requests

url = "https://example.com/api/tags"
headers = {
    "Content-Type": "application/x-www-form-urlencoded"
}
body = "tag=cloud%20hosting&tag=linux".encode("utf-8")

response = requests.request(
    method="POST",
    url=url,
    headers=headers,
    data=body,
    allow_redirects=False,
    verify=True,
)
print(response.status_code)
print(response.text)

Pemetaan opsi curl

Opsi curlHasil konversi
URL / --urlSatu URL HTTP atau HTTPS lengkap
-X / --requestMetode HTTP yang ditetapkan secara eksplisit
-H / --headerNama dan nilai; duplikat serta instruksi header kosong perlu diperiksa
-d / --data / --data-raw / --data-binaryBody inline dengan urutan argumen data tetap
--data-urlencode / -GMengodekan nilai; -G memindahkan data ke query URL
--jsonMempertahankan teks JSON dan menambahkan header JSON bawaan
-u / --userBasic Auth dalam format username:password
-L / -I / -kPengalihan, HEAD, dan verifikasi TLS; Fetch tidak mendukung -k
-b / -A / -eCookie, User-Agent, dan Referer mengikuti pembatasan browser
--compressed / -s / -S / -v / -iDekompresi memakai pustaka tujuan; tampilan terminal tidak ditiru

Pertanyaan seputar konversi

Apakah perintah langsung dijalankan?

Tidak. Alat hanya membaca teks dan menghasilkan kode di browser. URL dan kredensial tidak diuji. Request baru dikirim saat Anda menjalankan kode hasilnya.

Bisakah memakai Copy as cURL dari DevTools?

Bisa untuk satu request berformat POSIX dengan opsi yang didukung. Pilih format bash. Opsi yang tidak didukung memunculkan error, bukan diabaikan tanpa pemberitahuan.

Apakah isi JSON berubah?

Body disimpan sebagai teks, tanpa menulis ulang angka, spasi, atau kunci duplikat. Opsi --json tidak memeriksa validitas sintaks JSON.

Mengapa ada header yang hilang di Fetch?

Sebagian header dikendalikan browser dan tidak dapat ditetapkan bebas lewat Fetch. Header yang dihilangkan ditampilkan dalam catatan. Content-Length dihitung ulang oleh pustaka HTTP.

Apa yang perlu diperiksa sebelum membagikan kode?

Token, kata sandi, dan cookie dari input dapat tetap ada dalam kode. Periksa sebelum membagikan atau menyimpannya di repositori. Sesuaikan pula timeout, pengelolaan kredensial, dan penanganan error.

Dokumentasi: curl · Requests · Fetch