🔄
Alat Developer
March 20, 20268 min readBy BrowseryTools Team

cURL ke Kode: Konversi Permintaan API Antar Bahasa Secara Instan

Pahami sintaks flag cURL, pola REST API umum, dan cara menerjemahkan perintah cURL secara akurat ke JavaScript fetch, Python requests, dan Node.js axios — termasuk alur kerja 'Copy as cURL' DevTools browser.

curlapihttpjavascriptpythonrest

Setiap API memiliki dokumentasi. Hampir secara universal, dokumentasi tersebut menyertakan contoh kode dalam cURL — klien HTTP command-line yang ada di setiap sistem Unix-like dan telah menjadi lingua franca dokumentasi API selama beberapa dekade. Masalahnya adalah Anda tidak menulis shell script. Anda menulis JavaScript, Python, Go, atau Ruby, dan Anda perlu menerjemahkan perintah cURL tersebut menjadi kode yang berfungsi sebelum dapat menggunakannya.

Terjemahan tersebut membosankan dan rawan kesalahan. Header, skema autentikasi, request body, dan URL encoding semuanya harus dipetakan ke pemanggilan method yang tepat dalam bahasa yang tepat. BrowseryTools cURL Converter melakukan ini secara otomatis — tempel perintah cURL dan dapatkan kode yang setara dalam JavaScript fetch, Python requests, Node.js axios, dan lainnya. Gratis, tanpa pendaftaran, semuanya tetap di browser Anda.

Apa Itu cURL?

cURL (Client URL) adalah alat command-line untuk mentransfer data menggunakan URL. Ia mendukung HTTP, HTTPS, FTP, WebSocket, dan lusinan protokol lainnya. Bagi developer, paling umum digunakan sebagai cara membuat permintaan HTTP dari terminal — menguji endpoint API, mengunduh file, atau men-debug autentikasi.

cURL diinstal secara default di macOS dan sebagian besar distribusi Linux. Di Windows, ia telah dibundel dengan OS sejak Windows 10. Ubikuitas ini adalah persis mengapa tim dokumentasi API secara default menggunakan cURL untuk contoh — mereka dapat yakin bahwa developer mana pun yang membaca dokumen dapat langsung menjalankan contoh tersebut, tanpa menginstal apa pun.

Anatomi Perintah cURL

Perintah cURL dibangun dari URL dasar dan sekumpulan flag. Berikut contoh lengkap yang mencakup flag-flag terpenting:

curl -X POST https://api.example.com/v1/users \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
  -d '{"name": "Alice", "email": "alice@example.com"}'

Penjelasan setiap flag:

  • -X POST — menetapkan metode HTTP. Nilai valid adalah GET, POST, PUT, PATCH, DELETE, dll. Jika dihilangkan dan -d ada, cURL secara default menggunakan POST.
  • -H "Header: Value" — menambahkan request header. Dapat diulang beberapa kali untuk beberapa header.
  • -d '...' — request body. Untuk JSON, kombinasikan dengan -H "Content-Type: application/json". cURL mengkodekan URL body secara default kecuali Anda menggunakan --data-raw.
  • --data-raw '...' — mengirim body persis apa adanya tanpa encoding URL apa pun. Diperlukan ketika body berisi karakter seperti @ yang akan diinterpretasi secara khusus oleh -d.
  • -u username:password — singkatan autentikasi dasar. cURL mengkodekannya sebagai header Authorization Base64 untuk Anda.
  • -s — mode silent; menekan progress bar. Hampir selalu digunakan dalam script.
  • -v — mode verbose; mencetak header permintaan dan respons. Sangat berharga untuk men-debug kegagalan autentikasi.
  • -o filename — tulis output ke file daripada stdout.

Pola cURL Umum untuk REST API

Permintaan GET dengan Parameter Query

curl "https://api.example.com/users?page=2&limit=20" \
  -H "Authorization: Bearer TOKEN"

Parameter query langsung ada dalam URL. Kutip seluruh URL untuk mencegah shell menginterpretasikan & sebagai operator proses latar belakang.

POST dengan JSON Body

curl -X POST https://api.example.com/orders \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-api-key" \
  --data-raw '{"product_id": 42, "quantity": 3}'

Upload File (multipart/form-data)

curl -X POST https://api.example.com/upload \
  -H "Authorization: Bearer TOKEN" \
  -F "file=@/path/to/document.pdf" \
  -F "description=Q4 Report"

Flag -F mengirim multipart/form-data. Awalan @ berarti "baca dari file". Ini adalah format yang digunakan untuk upload gambar, API pemrosesan dokumen, dan endpoint apa pun yang menerima data biner.

Mengonversi cURL ke JavaScript fetch

// cURL asli:
// curl -X POST https://api.example.com/v1/users \
//   -H "Content-Type: application/json" \
//   -H "Authorization: Bearer TOKEN" \
//   -d '{"name": "Alice", "email": "alice@example.com"}'

const response = await fetch("https://api.example.com/v1/users", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer TOKEN",
  },
  body: JSON.stringify({
    name: "Alice",
    email: "alice@example.com",
  }),
});

const data = await response.json();

Mengonversi cURL ke Python requests

import requests

response = requests.post(
    "https://api.example.com/v1/users",
    headers={
        "Authorization": "Bearer TOKEN",
    },
    json={
        "name": "Alice",
        "email": "alice@example.com",
    },
)

data = response.json()

Parameter json= dari pustaka requests menangani serialisasi dan pengaturan header Content-Type: application/json secara otomatis — tidak perlu mengaturnya secara manual.

Mengonversi cURL ke Node.js dengan axios

const axios = require("axios");

const response = await axios.post(
  "https://api.example.com/v1/users",
  {
    name: "Alice",
    email: "alice@example.com",
  },
  {
    headers: {
      Authorization: "Bearer TOKEN",
    },
  }
);

const data = response.data;

Cara Kerja "Copy as cURL" di Browser DevTools

Salah satu fitur paling berguna di browser DevTools adalah "Copy as cURL." Di Chrome, Firefox, atau Safari: buka DevTools, buka tab Network, buat permintaan (masuk, klik tombol, muat halaman), klik kanan permintaan dalam daftar jaringan, dan pilih "Copy as cURL."

Browser menghasilkan perintah cURL lengkap yang menyertakan setiap header yang dikirim browser — termasuk cookie, token sesi, token CSRF, dan materi autentikasi lainnya. Ini berarti Anda dapat memutar ulang permintaan persis yang dibuat browser, termasuk seluruh konteks autentikasinya, dari terminal atau dari kode.

Ini sangat berharga untuk debugging: jika permintaan browser berhasil tetapi permintaan kode Anda gagal, tempel keduanya ke diff dan temukan perbedaan header atau body-nya. Anda juga dapat menempel cURL yang disalin langsung ke BrowseryTools cURL Converter untuk mendapatkan kode setara dalam bahasa pilihan Anda — konverter menangani semua escaping, kutipan, dan terjemahan flag secara otomatis.

Ringkasan

cURL adalah bahasa universal HTTP. Dokumentasi API menggunakannya karena semua orang bisa menjalankannya. DevTools menyalinnya karena menangkap setiap detail permintaan. Belajar membaca cURL dengan lancar — dan menerjemahkannya secara akurat ke bahasa apa pun yang Anda kerjakan — adalah keterampilan praktis yang memberikan manfaat setiap kali Anda mengintegrasikan API baru. Lewati terjemahan manual yang membosankan dan gunakan BrowseryTools cURL Converter untuk mendapatkan kode yang bersih dan dapat dijalankan dalam hitungan detik.


🛠️

Try the Tools — 100% Free, No Sign-Up

Everything runs in your browser. No uploads. No accounts. No ads.

Explore All Tools →