2010-04-29 3 views
1

Un de mes services Web renvoie la liste des identifiants des projets dont une personne est propriétaire. Autrement dit, quand je reçois http://example.com/wsListProjects?user=eric je récupère xml avec la liste des projets. Cependant, quand je spécifie user = xxx, qui n'existe pas, je renvoie actuellement une réponse 404? Est-ce la réponse correcte au retour?Quelle est la bonne réponse pour le service Web?

Merci.

+0

Plus d'informations ici: http://stackoverflow.com/questions/1322719/rest-webservice-error-handling –

Répondre

1

C'est vraiment une question d'opinion. De nombreux services Web, tels que Twitter, utilisent souvent des codes de retour HTTP quand ils ont un sens (par exemple, 401 Non autorisé si les informations d'identification des utilisateurs sont erronées), d'autres retournent simplement un objet d'erreur au format XML. Tout se résume à votre conception.

+0

D'accord. C'est le même choix que d'avoir une méthode lançant une exception ou de retourner une valeur nulle ou fausse. Parfois, l'exception a du sens, car vous pouvez facilement les capturer, mais parfois retourner un résultat nul ou faux fonctionne mieux. –

1

Y a-t-il une différence (d'un point de vue "programme doit faire quelque chose") entre un utilisateur qui n'existe pas et un utilisateur qui n'a aucun projet assigné? Si ce n'est pas le cas, retournez simplement une liste vide dans les deux cas.

S'il y a une différence, alors peut-être ajouter un champ MessageCode/MessageText qui est rempli si l'utilisateur n'existe pas, avec une liste vide.

Dans les deux cas, je ne pense pas qu'un 404 est approprié - le site existe, et le 404 suggère que quelque chose ne va pas avec la demande Web réelle.

0

Je vais retourner 404 si l'utilisateur ne devrait pas avoir accès à la page. Typiquement vous retourneriez 403 (ou 401) cependant dans certains cas un 404 est logique parce que vous voulez apparaître comme si la page n'existait même pas. Vraiment dépend de la situation.

Questions connexes