Aller au contenu principal

Request():delete()

Exécuter une requête DELETE et renvoyer un objet Response. Cette méthode est utilisée pour supprimer une ressource d'un serveur.

Signature

delete(): Response

Renvoie

Response - L'objet response contenant la réponse du serveur

Description

La méthode delete() envoie une requête HTTP DELETE à l'URL spécifiée lors de la création de l'objet Request. Les requêtes DELETE sont généralement utilisées pour supprimer les ressources existantes d'un serveur, comme supprimer un utilisateur, un message ou toute autre entité de données.

Exemples

Requête DELETE de base

-- Supprimer un utilisateur avec l'ID 123
local response = Request("https://api.example.com/users/123"):delete()

Requête DELETE avec authentification

-- Supprimer un message avec autorisation
local response = Request("https://api.example.com/posts/456")
:setHeader("Authorization", "Bearer votre-token-ici")
:setHeader("Accept", "application/json")
:delete()

Traitement de la réponse DELETE

-- Supprimer un commentaire et gérer la réponse
local response = Request("https://api.example.com/comments/789")
:setHeader("Authorization", "Bearer votre-token-ici")
:delete()

local data = response:getData()
local statusCode = response:getResponseCode()

if statusCode == 204 then
print("Commentaire supprimé avec succès ! (Aucun contenu)")
elseif statusCode == 200 then
print("Commentaire supprimé avec succès !")
print("Réponse : " .. data)
else
print("Échec de la suppression du commentaire. Statut : " .. statusCode)
end

DELETE avec en-têtes supplémentaires

-- Supprimer une ressource avec des en-têtes personnalisés
local response = Request("https://api.example.com/files/document.pdf")
:setHeader("Authorization", "Bearer token123")
:setHeader("X-Delete-Reason", "Suppression demandée par l'utilisateur")
:setHeader("Accept", "application/json")
:delete()

local status = response:getResponseCode()
if status == 200 or status == 204 then
print("Fichier supprimé avec succès")
else
print("Échec de la suppression avec le statut : " .. status)
end

Suppression conditionnelle

-- Supprimer uniquement si la ressource n'a pas été modifiée
local response = Request("https://api.example.com/data/123")
:setHeader("If-Match", "valeur-etag-ici")
:setHeader("Authorization", "Bearer token")
:delete()

local status = response:getResponseCode()
if status == 412 then
print("Échec de la suppression : La ressource a été modifiée")
elseif status == 200 or status == 204 then
print("Ressource supprimée avec succès")
end

Notes

  • Les requêtes DELETE n'ont généralement pas de corps de requête
  • Les opérations DELETE réussies renvoient généralement :
    • 200 OK avec un corps de réponse décrivant la suppression
    • 202 Accepted si la suppression est traitée de manière asynchrone
    • 204 No Content si la suppression a réussi sans corps de réponse
  • La méthode renvoie un objet Response que vous pouvez utiliser pour accéder aux données de réponse et au code de statut
  • Vérifiez toujours le code de statut de la réponse pour vous assurer que la requête a réussi
  • Les requêtes DELETE sont idempotentes - faire la même requête plusieurs fois devrait avoir le même effet (la ressource est supprimée)
  • Soyez prudent lors de l'utilisation des requêtes DELETE car elles suppriment définitivement les données