Thực hiện yêu cầu DELETE với hàm curl_init()

Hàm curl_init() trong thư viện cURL có thể hỗ trợ việc gửi yêu cầu HTTP DELETE một cách lập trình bằng cách xóa một tài nguyên khỏi máy chủ.

Minh Triết

Minh Triết

22 tháng 8 2025

Thực hiện yêu cầu DELETE với hàm curl_init()

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Dự án cURL, chính thức được biết đến với tên gọi "Khách hàng cho URL", cung cấp cho các nhà phát triển một bộ chức năng toàn diện để quản lý việc truyền tải dữ liệu. Nó hoạt động trong hai chế độ chính: giao diện dòng lệnh hướng tới người dùng cho các tương tác cơ bản và một thư viện mạnh mẽ được thiết kế để tích hợp liền mạch trong các dự án phát triển phần mềm.

💡
Tối ưu hóa thiết kế và kiểm tra API cURL của bạn với Apidog, một công cụ phát triển API toàn diện cho toàn bộ vòng đời của API. Với Apidog, bạn có thể xây dựng, gỡ lỗi, mô phỏng và tài liệu hóa các API cURL trong một ứng dụng duy nhất!

Để học về các chức năng mà Apidog cung cấp, hãy nhấp vào nút bên dưới!
button

Định nghĩa chính thức của curl_init()

Dựa trên trang web chính thức của PHP, hàm curl_init khởi tạo một phiên cURL và trả về một tay cầm cURL để sử dụng với các hàm curl_setopt(), curl_exec(), và curl_close().

Các tham số liên quan

url

Nếu bạn cung cấp một URL, tùy chọn CURLOPT_URL sẽ được thiết lập với giá trị của nó. Bạn cũng có thể thiết lập tùy chọn này một cách thủ công bằng cách sử dụng hàm curl_setopt().

Tuy nhiên, hãy lưu ý rằng giao thức file bị vô hiệu hóa bởi chính cURL nếu open_basedir đã được thiết lập.

Giá trị trả về

Hàm curl_init() trả về một tay cầm cURL khi thành công, và false khi có lỗi.

Yêu cầu DELETE là gì?

Trong ngữ cảnh web, yêu cầu DELETE là một hướng dẫn cụ thể được gửi bằng cách sử dụng Giao thức Truyền tải Siêu văn bản (HTTP) tới một máy chủ. Nó ra lệnh cho máy chủ xóa hoặc loại bỏ một tài nguyên đã xác định. Tài nguyên này có thể là một tệp, một mục trong cơ sở dữ liệu hoặc bất kỳ mảnh dữ liệu nào mà máy chủ quản lý.

Yêu cầu DELETE hoạt động như thế nào?

Dưới đây là phân tích cách các yêu cầu DELETE hoạt động:

Bước 1 - Khách hàng Khởi đầu

Một khách hàng, chẳng hạn như trình duyệt web hoặc một ứng dụng phần mềm, gửi yêu cầu DELETE đến máy chủ.

Bước 2 - Tài nguyên Được chỉ định

Yêu cầu bao gồm một Định danh Tài nguyên Đồng nhất (URI) chỉ ra chính xác tài nguyên trên máy chủ mà cần phải bị xóa.

Bước 3 - Hành động của máy chủ

Khi nhận được yêu cầu DELETE, máy chủ xử lý và, nếu thành công, sẽ loại bỏ tài nguyên được chỉ định.

Bước 4 - Phản hồi được gửi

Máy chủ sau đó gửi mã phản hồi trở lại cho khách hàng cho biết kết quả của nỗ lực xóa. Các mã thành công phổ biến bao gồm 200 (OK), 202 (Được chấp nhận), và 204 (Không có nội dung).

Các điểm nổi bật về yêu cầu DELETE

Idempotent

Gửi cùng một yêu cầu DELETE nhiều lần nên có cùng một tác động (tức là, xóa tài nguyên chỉ một lần).

Không được đảm bảo

Ngay cả khi có mã phản hồi thành công, việc xóa thực tế có thể không diễn ra ngay lập tức do việc triển khai hoặc chính sách của máy chủ.

Xóa vĩnh viễn

Khác với một số thao tác chỉnh sửa, các yêu cầu DELETE thường dẫn đến việc xóa vĩnh viễn tài nguyên.

Ví dụ mã của việc tạo yêu cầu DELETE với hàm curl_init()

Ví dụ 1 - Yêu cầu DELETE cơ bản

<?php

$url = "https://api.example.com/resources/123"; // Thay thế bằng URL thực

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");  // Thiết lập phương thức yêu cầu thành DELETE
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    // Ghi lại phản hồi

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

if ($http_code == 200) {
  echo "Tài nguyên đã được xóa thành công!";
} else {
  echo "Lỗi khi xóa tài nguyên: " . $http_code;
}

?>

Giải thích mã:

  1. Chúng tôi định nghĩa URL mục tiêu cho yêu cầu DELETE.
  2. curl_init($url) khởi tạo tay cầm cURL.
  3. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE") thiết lập phương thức yêu cầu thành "DELETE".
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) đảm bảo rằng phản hồi được ghi lại dưới dạng chuỗi.
  5. $response = curl_exec($ch) thực hiện yêu cầu DELETE và lưu trữ phản hồi.
  6. $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE) truy xuất mã phản hồi HTTP.
  7. Chúng tôi đóng tay cầm cURL với curl_close($ch).
  8. Mã kiểm tra mã phản hồi. Mã 200 cho biết việc xóa thành công.

Ví dụ 2 - Yêu cầu DELETE với xác thực

<?php

$url = "https://api.example.com/protected/resources/456"; // Thay thế bằng URL
$username = "tên_tài_khoản_của_bạn";
$password = "mật_khẩu_của_bạn";

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);  // Thiết lập thông tin xác thực

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

// ... (kiểm tra mã phản hồi và xử lý tương ứng)

?>

Giải thích mã:

  1. Chúng tôi định nghĩa URL và thông tin xác thực.
  2. Cấu trúc mã tuân theo ví dụ trước với các dòng bổ sung cho xác thực.
  3. curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password) thiết lập tên đăng nhập và mật khẩu cho xác thực cơ bản.

Ví dụ 3 - Yêu cầu DELETE với tải trọng JSON (Python)

import json
import curl

url = "https://api.example.com/data"
data = {"id": 789}  # Thay thế bằng dữ liệu của bạn

headers = {"Content-Type": "application/json"}

response = curl.easy.request(
    url,
    custom_request="DELETE",
    data=json.dumps(data).encode("utf-8"),  # Mã hóa dữ liệu dưới dạng byte JSON
    headers=headers
)

if response.status_code == 200:
    print("Tài nguyên đã được xóa thành công!")
else:
    print(f"Lỗi khi xóa tài nguyên: {response.status_code}")

Giải thích mã:

1. Chúng tôi nhập các thư viện cần thiết và định nghĩa URL cũng như đối tượng dữ liệu.

2. Chúng tôi thiết lập tiêu đề Content-Type để chỉ định dữ liệu JSON.

3. curl.easy.request thực hiện yêu cầu với các tham số:

4. Chúng tôi kiểm tra mã trạng thái phản hồi để xác nhận thành công (200).

Ghi nhớ

Vui lòng đảm bảo rằng các mẫu mã ở trên không được sao chép và dán vào IDE của bạn, vì chúng đã được đơn giản hóa và sẽ cần điều chỉnh thêm để phù hợp với nhu cầu của ứng dụng của bạn.

Đối với tài liệu chính thức, bạn có thể xem tại: https://www.php.net/manual/en/book.curl.php

Apidog - Thiết kế cURL API hoàn hảo

Nếu bạn đang tìm kiếm một giải pháp tinh tế cho phát triển API hiệu quả, bạn nên xem xét thử nghiệm Apidog - đó là một nền tảng phát triển API trang bị cho các nhà phát triển tất cả các công cụ cần thiết cho toàn bộ vòng đời API.

giao diện apidog
button

Nhập cURL APIs vào Apidog

nhập cURL apidog

Apidog hỗ trợ người dùng muốn nhập các lệnh cURL vào Apidog. Trong một dự án trống, hãy nhấp vào nút màu tím + xung quanh phần trên bên trái của cửa sổ Apidog, và chọn Nhập cURL.

ví dụ mã cURL stripe

Sao chép và dán lệnh cURL vào ô hiển thị trên màn hình của bạn.

nhập mã cURL thành công

Nếu thành công, bạn sẽ có thể xem lệnh cURL ở dạng yêu cầu API.

button

Tạo mã PHP cho cURL API với Apidog

Nếu bạn không có kinh nghiệm trước đó trong việc lập trình bằng ngôn ngữ PHP, đừng lo lắng! Apidog có tính năng tạo mã mà bạn có thể dựa vào, cung cấp cho bạn các khung mã cho nhiều ngôn ngữ lập trình khác.

apidog tạo mã khách hàng

Đầu tiên, tìm nút </> Tạo Mã trên bất kỳ API hoặc yêu cầu nào, và chọn Tạo Mã Khách Hàng trong danh sách drop-down.

apidog tạo mã php

Tiếp theo, chọn PHP và tìm phần cURL. Bạn sẽ thấy mã được tạo cho cURL. Tất cả những gì bạn cần làm là sao chép và dán nó vào IDE (Môi trường Phát triển Tích hợp) của bạn và tiếp tục phát triển ứng dụng của bạn.

button

Kết luận

Hàm curl_init() trong cURL trao quyền cho các nhà phát triển với một phương pháp lập trình để xóa dữ liệu. Bằng cách tạo ra các yêu cầu DELETE, các tài nguyên trên các máy chủ từ xa có thể bị loại bỏ trực tiếp từ bên trong các ứng dụng. Chức năng này chứng tỏ giá trị không thể thiếu cho việc quản lý vòng đời dữ liệu, đồng bộ thông tin trên các hệ thống và đảm bảo tuân thủ các quy định về quản lý dữ liệu.

Hơn nữa, cURL cung cấp sự linh hoạt trong việc tạo các yêu cầu DELETE. Từ các thao tác cơ bản đến những thao tác yêu cầu xác thực hoặc tải trọng dữ liệu phức tạp, thư viện cung cấp các công cụ cần thiết. Bằng cách tận dụng khả năng của cURL, các nhà phát triển có thể đạt được kiểm soát chính xác việc xóa dữ liệu trong các giải pháp phần mềm của họ.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API