lpoaura / BirdAtlasOfFrance

Oiseaux de France, a web bird atlas of France
https://www.oiseauxdefrance.org/
GNU Affero General Public License v3.0
8 stars 7 forks source link

API : réponse http 204 #224

Closed mgageo closed 1 year ago

mgageo commented 2 years ago

Sur des requêtes, la réponse n'est plus un fichier json vide mais un http 204. Ce comportement est définitif ?

lpofredc commented 2 years ago

Bonjour @mgageo,

C'est le code de statut que nous avons choisi lorsque le résultat la requête de l'API ne renvoie rien sans pour autant être une erreur. Par exemple, l'API qui renvoie le territoire du centre de la carte. Auparavant, l'on retournait une erreur 404 (not found), pas très réjouissant lorsque l'on ouvre la console du navigateur. Ce n'est pas à proprement parlé une erreur, juste une absence de donnée sur ce lieu (204 > no content).

Côté frontend, cela nous permet de gérer plus proprement les appels d'API avec l'ajout d'une condition if (data) ....

https://github.com/lpoaura/BirdAtlasOfFrance/blob/81cd6da7e679091e4b2d03f75ac2aa956a598395/frontend/components/prospecting/ProspectingMap.vue#L846-L851

C'est bien entendu discutable.

mgageo commented 2 years ago

Répondre avec un fichier json vide me semble préférable, considérer les erreurs de la couche "transport" comme une réponse correcte pour la couche "application" est un peu douteux d'un point de vue conceptuel.

lpofredc commented 2 years ago

Merci pour ce retour, si je comprends bien, la proposition serait de renvoyer une réponse avec statut 200 avec un json vide (ex: [] ou {}) ?

mgageo commented 2 years ago

Le json vide est pour moi la moins mauvaise solution, une réponse en json avec le même format serait encore préférable {"type":"FeatureCollection","features":[]} Sur une erreur de la couche "transport", je réessaye avant de passer à la couche "application".

lpofredc commented 1 year ago

API revues pour renvoyer des données "vides" au lieu des réponses vides avec code 204