Bagaimana Cara Membuat Permintaan PUT dengan curl_init()?

Gunakan curl_init() buat payload data & kirim data PUT aman.

Ardianto Nugroho

Ardianto Nugroho

15 April 2025

Bagaimana Cara Membuat Permintaan PUT dengan curl_init()?

Aplikasi perangkat lunak cURL, yang secara resmi dikenal sebagai "Client for URLs," menyediakan toolkit yang kuat bagi pengembang untuk mengelola transfer data. Ia beroperasi dalam dua mode berbeda: antarmuka baris perintah yang mudah digunakan yang melayani interaksi mendasar dan pustaka yang kuat yang dirancang untuk integrasi tanpa batas ke dalam proyek pemrograman.

💡
Mulai bekerja dengan API perintah cURL Anda dengan Apidog, solusi terpadu untuk semua masalah API. Dengan Apidog, Anda dapat membangun, men-debug, membuat mock, dan mendokumentasikan API cURL dalam waktu singkat!

Untuk memahami Apidog lebih baik, cobalah sendiri dengan mengklik tombol di bawah ini!
button

Definisi Formal dari curl_init()

Berdasarkan situs web PHP resmi, fungsi curl_init menginisialisasi sesi cURL dan mengembalikan handle cURL untuk digunakan dengan fungsi curl_setopt(), curl_exec(), dan curl_close().

Parameter yang Terlibat

url

Jika Anda memberikan URL, opsi CURLOPT_URL akan diatur ke nilainya. Anda juga dapat mengatur opsi ini secara manual menggunakan fungsi curl_setopt().

Namun, perhatikan bahwa protokol file dinonaktifkan oleh cURL itu sendiri jika open_basedir telah diatur.

Nilai Kembalian

Fungsi curl_init() mengembalikan handle cURL saat berhasil, dan false saat terjadi kesalahan.

Apa itu Permintaan PUT?

Permintaan PUT dalam Hypertext Transfer Protocol (HTTP) bertindak sebagai alat yang disempurnakan untuk mengelola sumber daya di server web. Ia menyimpang dari mitranya, permintaan GET (digunakan untuk pengambilan data), dengan secara khusus menargetkan modifikasi di sisi server.

Fungsi Permintaan PUT

Tidak seperti mitranya, permintaan GET yang digunakan untuk mengambil data, permintaan PUT berfokus pada modifikasi informasi di sisi server. Modifikasi ini dapat mencakup dua tindakan utama:

  1. Memperbarui Sumber Daya yang Ada: Jika sumber daya (seperti akun pengguna atau produk dalam database) sudah ada di URL tertentu, permintaan PUT dapat digunakan untuk memperbarui data terkaitnya.
  2. Membuat Sumber Daya Baru: Dalam skenario di mana sumber daya tidak ada di URL yang ditentukan, permintaan PUT dapat digunakan untuk membuat sumber daya baru dengan data yang disediakan.

Penempatan Data

Permintaan PUT biasanya mengirimkan data dalam badan permintaan, mirip dengan permintaan POST. Data ini sering kali mewakili keadaan baru atau yang diperbarui dari sumber daya yang ditargetkan.

Idempotensi

Karakteristik yang menentukan dari permintaan PUT adalah sifatnya yang idempoten. Ini menyiratkan bahwa menjalankan permintaan PUT beberapa kali dengan data yang identik akan menghasilkan hasil yang sama. Sederhananya, mengirim permintaan PUT sekali atau beberapa kali dengan data yang sama mengarah pada hasil yang sama di server.

Kasus Penggunaan Umum Permintaan PUT

Contoh Kode Membuat Permintaan PUT dengan Fungsi curl_init()

Berikut adalah beberapa contoh kode PHP yang dapat Anda rujuk jika Anda ingin membuat permintaan PUT dengan fungsi curl_init().

Contoh 1 - Memperbarui Informasi Pengguna (Data JSON)

Contoh ini memperbarui informasi profil pengguna di server menggunakan data JSON.

<?php

$url = "https://www.example.com/api/users/123"; // Ganti dengan ID pengguna sebenarnya
$new_email = "new_email@example.com";

$data = array(
  "email" => $new_email
);

$data_json = json_encode($data);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Atur metode permintaan ke PUT
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json); // Atur data PUT sebagai JSON
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // Kembalikan respons

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/json',   // Atur tipe konten ke JSON
  'Authorization: Bearer YOUR_API_KEY'  // Tambahkan header otorisasi
));

$response = curl_exec($ch);

curl_close($ch);

if($response) {
  echo "Profil pengguna berhasil diperbarui!";
} else {
  echo "Error: " . curl_error($ch);
}

?>

Penjelasan Kode:

  1. Kami mendefinisikan URL target (termasuk ID pengguna) dan alamat email baru.
  2. Kami membuat array $data yang berisi email yang diperbarui dan mengubahnya menjadi JSON menggunakan json_encode.
  3. Kami menginisialisasi handle curl dan mengatur metode permintaan ke PUT menggunakan CURLOPT_CUSTOMREQUEST.
  4. Kami mengatur data PUT dengan CURLOPT_POSTFIELDS dan mengatur header tipe konten ke JSON.
  5. Kami menambahkan header otorisasi dengan kunci API Anda untuk akses aman.
  6. Kami menjalankan permintaan, menutup handle, dan memeriksa respons yang berhasil.

Contoh 2 - Mengunggah File (Data Mentah)

Contoh ini mengunggah file ke server menggunakan data mentah.

<?php

$url = "https://www.example.com/api/uploads";
$filename = "myfile.txt";

$file_content = file_get_contents($filename); // Baca konten file

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Atur metode permintaan ke PUT
curl_setopt($ch, CURLOPT_PUT, 1);  // Atur mode unggah PUT

curl_setopt($ch, CURLOPT_INFILE, fopen($filename, "rb")); // Atur file untuk diunggah
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($filename)); // Atur ukuran file

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // Kembalikan respons

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/octet-stream' // Atur tipe konten untuk data mentah
));

$response = curl_exec($ch);

curl_close($ch);

if($response) {
  echo "File berhasil diunggah!";
} else {
  echo "Error: " . curl_error($ch);
}

?>

Penjelasan Kode:

  1. Kami mendefinisikan URL unggah dan nama file.
  2. Kami membaca konten file menggunakan file_get_contents.
  3. Kami menginisialisasi handle curl dan mengatur metode permintaan ke PUT.
  4. Kami mengaktifkan mode unggah PUT dengan CURLOPT_PUT.
  5. Kami menentukan file untuk diunggah menggunakan CURLOPT_INFILE dan ukurannya dengan CURLOPT_INFILESIZE.
  6. Kami mengatur header tipe konten untuk menunjukkan data mentah.
  7. Kami menjalankan permintaan, menutup handle, dan memeriksa respons yang berhasil.

Contoh 3 - PUT Bersyarat dengan ETag

Contoh ini menunjukkan permintaan PUT bersyarat menggunakan ETag untuk penguncian optimis.

<?php

$url = "https://www.example.com/api/posts/123";
$new_title = "Judul yang Diperbarui";
$etag = "some-etag-value";  // Ganti dengan ETag sebenarnya

$data = array(
  "title" => $new_title
);

$data_json = json_encode($data);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Atur metode permintaan ke PUT
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json); // Atur data PUT sebagai JSON
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // Kembalikan respons

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/json',   // Atur tipe konten ke JSON
  'If-Match: ' . $etag  // Tambahkan ETag untuk pembaruan bersyarat
));

$response = curl_exec($ch);

curl_close($ch);

if($response) {
  echo "Postingan berhasil diperbarui!";
} else {
  $error = curl_error($ch);
  if (strpos($error, '412 Precondition Failed') !== false) {
    echo "Pembaruan gagal: ETag tidak cocok (data mungkin telah dimodifikasi oleh pengguna lain).";
  } else {
    echo "Error: " . $error;
  }
}

?>

Penjelasan Kode:

  1. Kami mendefinisikan URL target (ID postingan), judul baru, dan ETag yang diambil dari server.
  2. Kami membuat array $data dan mengubahnya menjadi JSON.
  3. Kami mengatur metode permintaan ke PUT dan menyertakan data PUT.
  4. Kami menambahkan header If-Match dengan ETag untuk memastikan pembaruan hanya terjadi jika versi sisi server saat ini cocok dengan ETag. Ini mencegah penimpaan perubahan yang dibuat oleh pengguna lain (penguncian optimis).
  5. Kami memeriksa respons untuk keberhasilan dan menangani kesalahan tertentu (412 Precondition Failed) yang menunjukkan ketidakcocokan ETag.

Catatan untuk Diingat

Harap pastikan bahwa contoh kode di atas tidak disalin dan ditempel ke IDE Anda, karena contoh tersebut disederhanakan dan akan memerlukan modifikasi lebih lanjut agar sesuai dengan kebutuhan aplikasi Anda.

Untuk dokumentasi resmi, Anda dapat memeriksanya di: https://www.php.net/manual/en/book.curl.php

Percepat Pengembangan API cURL Anda dengan Apidog

Apidog adalah platform pengembangan API canggih yang mampu mengubah baris perintah cURL menjadi tampilan grafis yang indah dan intuitif, sehingga memudahkan pengembang untuk memahami dan mengatasi API.

spesifikasi apidog
button

Anda tidak hanya dapat mengimpor perintah cURL, tetapi juga membangun, men-debug, membuat mock, dan mendokumentasikannya seperti API lainnya! Dengan kenyamanan seperti itu, Apidog dapat mendukung Anda dengan alur kerja tanpa gangguan.

Impor API cURL Dalam Hitungan Detik

apidog impor curl

Apidog mendukung pengguna yang ingin mengimpor perintah cURL ke Apidog. Dalam proyek kosong, klik tombol + berwarna ungu di sekitar bagian kiri atas jendela Apidog, dan pilih Impor cURL.

contoh kode stripe curl

Salin dan tempel perintah cURL ke dalam kotak yang ditampilkan di layar Anda.

impor kode curl berhasil

Jika berhasil, Anda sekarang seharusnya dapat melihat perintah cURL dalam bentuk permintaan API.

button

Tidak Yakin dengan PHP? Hasilkan Kode Dengan Apidog

Jika Anda tidak memiliki pengalaman sebelumnya dalam membuat kode dalam bahasa pemrograman PHP, jangan khawatir! Apidog memiliki fitur pembuatan kode yang dapat Anda andalkan, memberi Anda kerangka kode untuk beberapa bahasa pemrograman lainnya.

apidog hasilkan kode klien

Pertama, temukan tombol </> Hasilkan Kode pada API atau permintaan apa pun, dan pilih Hasilkan Kode Klien pada daftar drop-down.

apidog hasilkan kode php

Selanjutnya, pilih PHP, dan temukan bagian cURL. Anda sekarang akan melihat kode yang dihasilkan untuk cURL. Yang harus Anda lakukan adalah menyalin dan menempelkannya ke IDE (Integrated Development Environment) Anda dan melanjutkan pengembangan aplikasi Anda.

button

Kesimpulan

Dengan menguasai permintaan PUT dengan curl_init(), Anda telah membuka alat yang ampuh untuk berinteraksi dengan server web. Fungsi ini memberdayakan Anda untuk tidak hanya memperbarui sumber daya yang ada tetapi juga membuat yang baru. Baik Anda mengelola profil pengguna, memodifikasi entri database, atau mengunggah file, permintaan PUT menawarkan metode yang tepat dan efisien untuk manipulasi data.

Ingat, curl_init() menyediakan pendekatan serbaguna, memungkinkan Anda untuk menentukan format data, mengatur header khusus untuk komunikasi yang aman, dan bahkan menangani skenario seperti pembaruan bersyarat dan pelaporan kemajuan untuk transfer file besar. Dengan pengetahuan baru ini, Anda dapat dengan percaya diri memanfaatkan permintaan PUT untuk meningkatkan fungsionalitas dan kinerja aplikasi web Anda.

Explore more

Cara Menggunakan Lovable AI (Alternatif Cursor untuk Pengembang Web)

Cara Menggunakan Lovable AI (Alternatif Cursor untuk Pengembang Web)

Pelajari cara buat web apa pun dgn Lovable. Panduan lengkap, fitur inovatif, & integrasi Apidog (API gratis).

15 April 2025

Cara Menambahkan Kunci API Kustom ke Cursor: Panduan Komprehensif

Cara Menambahkan Kunci API Kustom ke Cursor: Panduan Komprehensif

Tutorial ini memandu Anda menyiapkan & mengelola API key khusus di Cursor: OpenAI, Anthropic, Google, & Azure.

11 April 2025

Cara Menggunakan NVIDIA Llama Nemotron API untuk Agen AI Tingkat Lanjut

Cara Menggunakan NVIDIA Llama Nemotron API untuk Agen AI Tingkat Lanjut

Pelajari API NVIDIA Llama Nemotron utk buat agen AI canggih.

11 April 2025

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.