Перейти к основному содержимому

Request():delete()

Выполняет DELETE-запрос и возвращает объект Response. Этот метод используется для удаления ресурса с сервера.

Сигнатура

delete(): Response

Возвращаемое значение

Response — объект ответа, содержащий ответ сервера

Описание

Метод delete() отправляет HTTP DELETE-запрос на URL-адрес, указанный при создании объекта 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-запросы являются идемпотентными — повторение одного и того же запроса несколько раз должно давать одинаковый результат (ресурс удаляется)
  • Будьте осторожны при использовании DELETE-запросов, так как они безвозвратно удаляют данные