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 suppression202 Accepted
si la suppression est traitée de manière asynchrone204 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