web-dev-qa-db-fra.com

Quel est le code retour d'état HTTP pour une instruction DELETE réussie dans REST?

J'étudie comment Spring gérer REST services Web (mais je ne sais pas s'il s'agit d'une réponse liée à Spring ou plus généralement, elle n'est liée qu'à REST = concept).

Mon doute est donc: quel est exactement le code retour d'état HTTP pour une instruction DELETE réussie?

Est-ce le 204 ou le 2?

Je sais que le 2 signifie que ma demande a été correctement satisfaite mais en lisant en ligne, il me semble que je l'attends après un GET renvoyant du contenu réussi et non après une suppression.

Quelque part, j'ai trouvé que le statut 204 est obtenu après avoir réussi PUT ou DELETE. Est-ce vrai? Je ne peux pas comprendre, cela signifie que la réponse est vide, pourquoi une réponse vide signifie que l'opération PUT ou DELETE a réussi?

23
AndreaNobili

Il n'y a pas de règles strictes sur lesquelles le code d'état HTTP est le bon pour chaque méthode. Cela dépend de ce qui s'est exactement passé, des informations que vous devez envoyer au client, etc. Je peux penser à quelques exemples:

  • Un DELETE réussi, sans autre information. 204 No Content

  • DELETE réussi, mais vous avez un avertissement concernant les ressources orphelines associées qui doivent également être supprimées. 200 OK.

  • Vous avez accepté la demande DELETE, mais cela peut prendre du temps et vous allez le faire de manière asynchrone. Le client doit le vérifier plus tard. 202 Accepted.

  • Vous avez accepté la demande DELETE, mais la ressource ne peut pas être supprimée et l'URI est réinitialisé à sa valeur par défaut. 205 Reset Content.

53
Pedro Werneck

Un corps de réponse vide ne signifie pas qu'une suppression est réussie, une suppression réussie (généralement) signifie que le corps de la réponse est vide.

Il n'y a pas de liste de codes d'état officielle pour les API RESTful, mais la plupart conviennent qu'un 204 est un bon code de réponse pour une suppression réussie, car il n'y a généralement pas de bonne raison de renvoyer un corps de réponse après la suppression de quelque chose.

En général, si une opération réussit et que le corps de réponse est vide, retournez 204. Si une opération réussit et que le corps de réponse n'est PAS vide, retournez 200

5
Neil McGuigan

Une réponse vide ne fait pas signifie que l'opération a réussi, le code d'erreur HTTP est censé indiquer la réussite/l'échec, et le corps de la réponse peut ou non contenir des données.

Le corps de réponse peut contient des informations supplémentaires concernant la demande, par exemple, un message spécifique à afficher dans l'interface utilisateur, des statistiques ou des informations de synchronisation concernant les informations, peu importe. Mais ce n'est pas avoir à, et le but du corps est informationnel/diagnostic s'il existe.

3
Dave Newton

2xx représente la réussite de la demande. Le xx vous permet simplement d'être plus précis sur ce qui s'est passé (ce que le serveur a fait ou retourne).

1
honerlawd