Question

Je développe une API simple RESTful, et tout à fait dans l'amour avec la façon dont il est minimaliste. Mais je ne suis pas certain que les codes de réponse HTTP correctes pour diverses situations:

  1. requête formée de façon incorrecte

  2. correctement formé requête fait référence à une ressource qui n'existe pas

  3. Ressource supprimé avec succès

  4. Ressource édité avec succès

Je pense actuellement que 1 serait 403 Forbidden; 2 serait 410 Gone; 3 et 4 seraient 202 Accepted. Est-ce qu'ils sonnent?

Était-ce utile?

La solution

Pour # 1, 403 suggère l'application a compris la requête, mais il l'habitude de remplir (par exemple l'utilisateur actuel n'a pas la permission de le faire pour une raison quelconque). Je pense que 400 mauvaise demande pourrait faire plus de sens dans ce cas.

Pour # 2 - Je pense 404 serait plus logique à savoir la ressource ne se trouve pas, à moins que la ressource existait à un moment donné, et a ensuite été supprimé, auquel cas 410 serait juste -. mais pas beaucoup de clients savent ce qu'il faut faire avec 410

Pour # 3 & # 4 -. 200 si vous avez traité avec succès la suppression, 202 si la suppression est mis en attente et sera traitée à une date ultérieure « hors bande »

RFC 2616 fournit de grandes explications sur ce que signifie chaque code de réponse en termes assez compréhensible.

Autres conseils

  1. 400
  2. 404
  3. 200
  4. 200
  5. 201 - ressource a été créée avec succès

1). 400 - demande mauvaise norme, 403 signifie que la demande est correctement formaté, mais vous n'êtes pas autorisé à y accéder

2). 404 - une 410 implique que la ressource existait mais a été délibérément déplacé

3). et 4). 200 si l'action est passé avec succès au moment où vous envoyez la réponse, 202 si l'action est en cours. Dans la pratique 202 est susceptible d'actions de suppression (où ils pourraient être soumis à l'examen) mais vous pouvez ou ne voulez pas retourner immédiatement 200 de toute façon il semble effectivement supprimé à l'utilisateur. Voilà une question imho de conception.

Obtenez le livre Richardson & Ruby - il a une annexe utile sur votre question et est une lecture obligatoire de toute façon

pourquoi ne pas utiliser la norme http codes de réponse . Vous obtiendrez toutes les optimisations (par ex, 303, 304) / infrastructure mise en place pour http gratuitement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top