Saltar al contenido principal

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 OK con un cuerpo de respuesta que describe la eliminación
    • 202 Accepted si la eliminación se procesa de forma asíncrona
    • 204 No Content si 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