Le 9 août 2013 13:49, Nicolas <nikrou77(a)gmail.com> a écrit :
Le 9 août 2013 14:41, Dsls <dsls(a)morefnu.org> a écrit :
>> Oui ou mieux en se basant sur le code http : 200 ok, sinon 401, 403,
>> 404, 500,...
> Exact. Dans ce cas on se contente de balancer le code d'erreur http,
> ou on peut mettre un message aussi ? (et dans ce cas, avec quel
> formalisme)
>
> C'est une question intéressée, j'ignore s'il y a un état de l'art
sur
> le sujet, et s'il faut envisager des "best practices" sur la
> structuration des réponses à renvoyer.
C'est une question intéressée et intéressante. Je pense qu'on peut
mettre les deux (cela permet d'avoir des messages traduits pour
l'utilisateur de l'API) mais je dois avouer que je ne sais pas quelles
sont les bonnes pratiques.
Pour avoir fréquenté pas mal d'API, la meilleure réponse est d'avoir
toujours la même enveloppe que ce soit pour une réponse ok ou une erreur.
Exemple: {status: 0, data: {}, errors: []}
Mettre ensuite le "status" à 1 ou 0, OK ou KO enfin peut importe, quelque
chose qui spécifie si la réponse est une erreur ou non. Les données de
retour vont dans "data" et le(s) message(s) d'erreur dans
"errors".
Pourquoi ne pas utiliser les codes HTTP directement? Parce qu'avec ce
format, le client peut déterminer si il y a un problème sur le serveur
(code HTTP != 200) ou sur l'API (sa requête / ses paramètres / etc...) et
ainsi avoir une gestion plus fine du message d'erreur à afficher à
l'utilisateur.
--
Thomas Bouron