Je travaille sur un projet et après avoir discuté avec des personnes au travail pendant environ plus d'une heure. J'ai décidé de savoir ce que les gens sur stack-exchange pourraient dire.
Nous écrivons une API pour un système, une requête doit renvoyer une arborescence Organisation ou une arborescence Objectifs.
L'arborescence de l'organisation est l'organisation dans laquelle l'utilisateur est présent. En d'autres termes, cette arborescence doit toujours exister. Dans l'organisation, un arbre de but doit toujours être présent. (c'est là que l'argument a commencé). Au cas où l'arbre n'existerait pas, mon collègue a décidé qu'il serait correct de répondre à l'aide du code d'état 200. Ensuite, j'ai commencé à me demander de corriger mon code car l'application était en train de s'effondrer lorsqu'il n'y avait pas d'arbre.
Je vais essayer d'épargner les flammes et la fureur.
J'ai suggéré de générer une erreur 404 lorsqu'il n'y a pas d'arbre. Cela me permettrait au moins de savoir que quelque chose ne va pas. Lorsque j'utilise 200, je dois ajouter une vérification spéciale à ma réponse dans le rappel de réussite pour gérer les erreurs. Je m'attends à recevoir un objet, mais je peux recevoir une réponse vide car rien n'est trouvé. Cela semble tout à fait juste de marquer la réponse comme un 404. Et puis la guerre a commencé et j'ai reçu le message que je ne comprenais pas le schéma de code de statut HTTP. Donc, je suis ici et demande ce qui ne va pas avec 404 dans ce cas? J'ai même eu l'argument "Il n'a rien trouvé , il est donc correct de retourner 200". Je crois que c'est faux car l'arbre devrait toujours être présent. Si nous ne trouvons rien et que nous attendons quelque chose, ce devrait être un 404.
Plus d'informations,
J'ai oublié d'ajouter les URL récupérées.
Les organisations
/OrgTree/Get
Buts
/GoalTree/GetByDate?versionDate=...
/GoalTree/GetById?versionId=...
Mon erreur, les deux paramètres sont nécessaires. Si une versionDate pouvant être analysée avec une date est fournie, la révision se ferme. Si vous entrez quelque chose dans le passé, la première révision sera renvoyée. Si par Id avec un identifiant qui n'existe pas, je soupçonne qu'il va retourner une réponse vide avec 200.
Supplémentaire
De plus, je pense que la meilleure solution au problème consiste à créer des objets par défaut lors de la création d'organisations. Ne pas avoir d'arborescence ne devrait pas être un cas valable et devrait être considéré comme un comportement indéfini. Il est impossible qu'un compte puisse être utilisé sans les deux arbres. Pour cette raison, ils devraient toujours être présents.
aussi je me suis lié ceci (un semblable mais je ne peux pas le trouver)
http://viswaug.files.wordpress.com/2008/11/http-headers-status1.png
/GoalTree/GetById?versionId=CompletelyInvalidID
revenir? Pas de succès, car la ressource nommée /GoalTree/GetById?versionId=CompletelyInvalidID
était littéralement introuvable.