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-запросов, так как они безвозвратно удаляют данные