Request():delete()
Thực thi một yêu cầu DELETE và trả về một đối tượng Response. Phương thức này được dùng để xóa một tài nguyên khỏi máy chủ.
Khai báo
delete(): Response
Trả về
Response - Đối tượng phản hồi chứa kết quả từ máy chủ
Mô tả
Phương thức delete() gửi một yêu cầu HTTP DELETE đến URL được chỉ định khi tạo đối tượng Request. Yêu cầu DELETE thường được dùng để xóa các tài nguyên hiện có khỏi máy chủ, chẳng hạn như xóa một người dùng, một bài đăng hoặc bất kỳ thực thể dữ liệu nào khác.
Ví dụ
Yêu cầu DELETE cơ bản
-- Xóa người dùng có ID 123
local response = Request("https://api.example.com/users/123"):delete()
Yêu cầu DELETE có xác thực
-- Xóa một bài đăng với phân quyền
local response = Request("https://api.example.com/posts/456")
:setHeader("Authorization", "Bearer your-token-here")
:setHeader("Accept", "application/json")
:delete()
Xử lý phản hồi DELETE
-- Xóa một bình luận và xử lý phản hồi
local response = Request("https://api.example.com/comments/789")
:setHeader("Authorization", "Bearer your-token-here")
:delete()
local data = response:getData()
local statusCode = response:getResponseCode()
if statusCode == 204 then
print("Bình luận đã được xóa thành công! (Không có nội dung)")
elseif statusCode == 200 then
print("Bình luận đã được xóa thành công!")
print("Phản hồi: " .. data)
else
print("Xóa bình luận thất bại. Mã trạng thái: " .. statusCode)
end
DELETE với Headers bổ sung
-- Xóa một tài nguyên với các headers tùy chỉnh
local response = Request("https://api.example.com/files/document.pdf")
:setHeader("Authorization", "Bearer token123")
:setHeader("X-Delete-Reason", "User requested deletion")
:setHeader("Accept", "application/json")
:delete()
local status = response:getResponseCode()
if status == 200 or status == 204 then
print("Tệp đã được xóa thành công")
else
print("Xóa thất bại với mã trạng thái: " .. status)
end
Xóa có điều kiện
-- Chỉ xóa nếu tài nguyên chưa bị thay đổi
local response = Request("https://api.example.com/data/123")
:setHeader("If-Match", "etag-value-here")
:setHeader("Authorization", "Bearer token")
:delete()
local status = response:getResponseCode()
if status == 412 then
print("Xóa thất bại: Tài nguyên đã bị thay đổi")
elseif status == 200 or status == 204 then
print("Tài nguyên đã được xóa thành công")
end
Lưu ý
- Yêu cầu DELETE thường không có phần thân yêu cầu (request body)
- Các thao tác DELETE thành công thường trả về:
200 OKkèm phần thân phản hồi mô tả việc xóa202 Acceptednếu việc xóa được xử lý bất đồng bộ204 No Contentnếu việc xóa thành công và không có phần thân phản hồi
- Phương thức trả về một đối tượng Response mà bạn có thể dùng để truy cập dữ liệu phản hồi và mã trạng thái
- Luôn kiểm tra mã trạng thái phản hồi để đảm bảo yêu cầu đã thành công
- Yêu cầu DELETE là idempotent - việc thực hiện cùng một yêu cầu nhiều lần sẽ cho ra kết quả như nhau (tài nguyên bị xóa)
- Hãy cẩn thận khi sử dụng yêu cầu DELETE vì chúng sẽ xóa dữ liệu vĩnh viễn