Dois-je renvoyer un 410 Gone en réponse à une requête HTTP DELETE réussie ?
-
21-12-2019 - |
Question
J'implémente la prise en charge de DELETE sur une API ReST (construite sur ServiceStack) et je me demande quel code de réponse renvoyer après une DELETE réussie.
HTTP définit 410 comme :
La ressource demandée n'est plus disponible sur le serveur et aucune adresse de transfert n'est connue.Cette condition devrait être considérée comme permanente.Les clients dotés de capacités d'édition de liens DEVRAIENT supprimer les références au Request-URI après l'approbation de l'utilisateur.Si le serveur ne sait pas, ou n'a pas la possibilité de déterminer, si la condition est permanente ou non, le code d'état 404 (Not Found) DEVRAIT être utilisé à la place.Cette réponse peut être mise en cache, sauf indication contraire.
Maintenant, si une ressource vient d'être DELETE
d, je souhaite probablement que bon nombre de ces recommandations s'appliquent...mais la pratique acceptée semble renvoyer une 200 OK
suite à un succès DELETE
- surtout depuis le 4XX
la plage est censée indiquer les conditions d’erreur.
Y a-t-il des arguments convaincants d'une manière ou d'une autre au-delà des directives de la spécification HTTP ?
La solution
RFC2616, article 9.7 indique spécifiquement ce qui suit concernant la réponse à DELETE
:
Une réponse réussie doit être de 200 (ok) si la réponse comprend une entité décrivant le statut, 202 (accepté) si l'action n'a pas encore été promulguée, ou 204 (pas de contenu) si l'action a été promulguée mais que la réponse ne comprend pas une entité.