إنتقل إلى المحتوى الرئيسي

Request():delete()

ينفّذ طلب DELETE ويُعيد كائن Response. تُستخدم هذه الدالة لحذف مورد من الخادم.

التوقيع

delete(): Response

القيمة المعادة

Response - كائن الاستجابة الذي يحتوي على رد الخادم

الوصف

ترسل الدالة delete() طلب HTTP DELETE إلى العنوان المحدّد عند إنشاء كائن Request. تُستخدم طلبات DELETE عادةً لإزالة موارد موجودة من الخادم، مثل حذف مستخدم أو منشور أو أي كيان بيانات آخر.

أمثلة

طلب DELETE أساسي

-- Delete a user with ID 123
local response = Request("https://api.example.com/users/123"):delete()

طلب DELETE مع المصادقة

-- Delete a post with authorization
local response = Request("https://api.example.com/posts/456")
:setHeader("Authorization", "Bearer your-token-here")
:setHeader("Accept", "application/json")
:delete()

معالجة استجابة DELETE

-- Delete a comment and handle the response
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("Comment deleted successfully! (No content)")
elseif statusCode == 200 then
print("Comment deleted successfully!")
print("Response: " .. data)
else
print("Failed to delete comment. Status: " .. statusCode)
end

DELETE مع ترويسات إضافية

-- Delete a resource with custom headers
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("File deleted successfully")
else
print("Delete failed with status: " .. status)
end

حذف مشروط

-- Delete only if resource hasn't been modified
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("Delete failed: Resource has been modified")
elseif status == 200 or status == 204 then
print("Resource deleted successfully")
end

ملاحظات

  • لا تحتوي طلبات DELETE عادةً على متن طلب
  • عمليات DELETE الناجحة تُعيد عادةً:
    • 200 OK مع متن استجابة يصف عملية الحذف
    • 202 Accepted إذا تُعالج عملية الحذف بشكل غير متزامن
    • 204 No Content إذا نجح الحذف دون وجود متن استجابة
  • تُعيد الدالة كائن Response يمكنك استخدامه للوصول إلى بيانات الاستجابة ورمز الحالة
  • تحقّق دائمًا من رمز حالة الاستجابة للتأكد من نجاح الطلب
  • طلبات DELETE تكرارية (idempotent) — إرسال نفس الطلب عدة مرات يجب أن يكون له نفس الأثر (المورد محذوف)
  • احذر عند استخدام طلبات DELETE لأنها تزيل البيانات نهائيًا