Disons qu'il y a un produit avec des commandes. Si vous demandez / products / product_id, il retournera un 404 si product_id n'existe pas. Mais / products / product_id / orders devrait-il renvoyer 404 s'il n'existe aucune commande pour ce produit ou doit-il renvoyer un tableau vide?
Réponses
Trop de publicités?Vous devriez vraiment faire un seul des deux choses
Renvoyer une 200 (OK)
code d'état, et un tableau vide dans le corps.
Ou le Retour d'un 204 (NO CONTENT)
code d'état, et NON le corps de la réponse.
Pour moi, l'option 2 semble plus techniquement correcte et garder en ligne avec le RESTE et HTTP principes.
Cependant, l'option 1 me semble plus efficace pour le client parce que le client n'a pas besoin de la logique supplémentaire pour différencier les deux (succès) des codes d'état. Depuis qu'elle sait qu'elle sera toujours de recevoir un tableau, il suffit de vérifier si elle a obtenu aucun, un ou plusieurs éléments et de traiter de manière appropriée
Voici ma suggestion pour tous les codes de statut d'api reposants
Choisir les codes de statut http pour les erreurs de services reposants
À mon avis:
Nous parlons http valeurs d'état ici, et devrait être d'un niveau plus élevé de donner des réponses.
On devrait le voir dans les couches de délégués. Comme lors de votre api n'est pas en mesure de répondre à une demande, dans le cas où l'appel de l'api elle-même n'est pas disponible, alors vous pourriez répondre avec une erreur 404.
Mais lors de votre appel, et il pourrait répondre à une collecte de données, mais son vide de collection, vous pouvez revenir juste un http 200, avec un résultat vide.
Je voudrais utiliser http valeurs d'état de donner une indication sur la validation de la demande, et non pas directement le rendre dépendant du contenu dans le plus profond de l'api de couches.
Ou on pourrait suivre strictement les protocoles trouvé sur le net, mais personne ne les suit...