Request():delete()
Ejecuta una solicitud DELETE y devuelve un objeto Response. Este método se usa para eliminar un recurso de un servidor.
Firma
delete(): Response
Devuelve
Response - El objeto de respuesta que contiene la respuesta del servidor
Descripción
El método delete() envía una solicitud HTTP DELETE a la URL especificada al crear el objeto Request. Las solicitudes DELETE se usan normalmente para eliminar recursos existentes de un servidor, como borrar un usuario, una publicación o cualquier otra entidad de datos.
Ejemplos
Solicitud DELETE básica
-- Delete a user with ID 123
local response = Request("https://api.example.com/users/123"):delete()
Solicitud DELETE con autenticación
-- 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()
Procesar la respuesta 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 con cabeceras adicionales
-- 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
Eliminación condicional
-- 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
Notas
- Las solicitudes DELETE normalmente no tienen cuerpo de solicitud
- Las operaciones DELETE exitosas normalmente devuelven:
200 OKcon un cuerpo de respuesta que describe la eliminación202 Acceptedsi la eliminación se procesa de forma asíncrona204 No Contentsi la eliminación fue exitosa sin cuerpo de respuesta
- El método devuelve un objeto Response que puedes usar para acceder a los datos de respuesta y al código de estado
- Comprueba siempre el código de estado de la respuesta para asegurarte de que la solicitud fue exitosa
- Las solicitudes DELETE son idempotentes: hacer la misma solicitud varias veces debería tener el mismo efecto (el recurso se elimina)
- Ten cuidado al usar solicitudes DELETE ya que eliminan datos permanentemente