Si une API RESTful de retour 400 ou 404 lorsqu'il est passé d'un id non valide
Lors de la construction d'une API RESTful et un utilisateur fournit une id de ressource qui n'existe pas, devrait vous revenir 404 Not Found
ou 400 Bad Request
.
Par exemple:
https://api.domain.com/v1/resource/foobar
Où foobar n'existe pas.
- Lors de la conception de l'api, il est important d'être soi documenter plus quand il y a erreur, il est important pour les api fournies pour guider le consommateur une correction de trajectoire. Jeter 404 est tout d'abord mal de documentation, mais aussi à confusion. Aussi il est important de noter que l'URL, en-TÊTES, les CORPS sont tous partie d'une demande et si l'un d'eux est incorrect alors je préfère l'api fournisseur de revenir sans ambiguïté de la réponse afin que je puisse rectifier. Aussi, je préfère bien formaté req entrer dans mon intérieur de l'application pour cette même banque de données pour éviter les surprises inutiles.
Vous devez vous connecter pour publier un commentaire.
Je serait de retour 404 dans le cas de la ressource n'existe pas(ce qui signifie le chemin de l'url est mal) et je reviendrai 400 seulement si l'appel reste est faite avec des données non valides (@PathParam) par exemple
https://api.domain.com/v1/profile/test@email : ici je suis en train d'essayer d'obtenir le profil de l'e-mail id, mais l'e-mail lui-même est mauvais, donc je vais retourner 400.
https://api.domain.com/v1/profile1111/[email protected] sera de retour 404 parce que le chemin de l'url n'est pas valide.
Doit être 404 ( Non Trouvé ). 400 est utilisé si vous ne pouvez pas répondre à la demande en raison d'une mauvaise syntaxe, cependant, pour votre cas, la syntaxe est correcte, mais il n'y a pas de ressources foobar.
Vous pouvez utiliser 400 si l'utilisateur utilise inexistante API comme ci-dessous :
Vous pouvez aussi vous référer à ce API REST Design Blog qui vous disent comment la conception de votre REPOS des codes d'erreur.
404 Not Found
est la bonne réponse je pense,400
est plus sur le corps de la demande et de ne pas l'identificateur de ressource, donc, par exemple, vous pouvez envoyer que par des erreurs de validation.Est-il une demande valide? Peut l'id de la ressource existe pas? Est-il formaté comme une bonne id? Il est syntaxiquement correct? etc.. Si oui, alors vous pouvez utiliser,
404 Not Found
. Sinon400 Bad Request
est plus approprié.404
serait une pratique plus courante une. Son pourResource Not Found
. Dans votre cas, l'URL n'est pas trouvé.400
est généralement utilisé pourBad Request
. Vous pouvez l'utiliser pour toute demande incorrecte. Pour eg.MissingRequiredQueryParameter
,InvalidInput
.Selon la RFC (https://tools.ietf.org/html/rfc2616#section-10.4)
l'API doit retourner 404 quand "Le serveur n'a pas trouvé quelque chose correspondant à l'URI de la Requête", qui est de votre exemple.
400 serait lorsque la ressource est trouvé, mais la demande elle-même est mal formé.
Par exemple:
j'.
https://api.domain.com/v1/resource/foobar
où foobar N'existe PAS doit retourner 404
ii.
https://api.domain.com/v1/resource/foobar
où foobar N'existe pas, mais la demande est mal ({âge:"NOTANINTEGER"}, une chaîne de caractères au lieu d'un int par exemple), il doit retourner à 400.
Espère que je pourrais aider.