Nous lançons une nouvelle API REST et je souhaitais obtenir l'avis de la communauté sur les meilleures pratiques concernant le formatage des paramètres d'entrée :
Actuellement, notre API est très axée sur le JSON (elle ne renvoie que du JSON). La question de savoir si nous voulons/devons renvoyer du XML est une question distincte.
Comme la sortie de notre API est centrée sur JSON, nous nous sommes engagés dans une voie où nos entrées sont un peu centrées sur JSON et je me suis dit que cela pouvait être pratique pour certains mais bizarre en général.
Par exemple, pour obtenir quelques détails de produits où plusieurs produits peuvent être tirés à la fois, nous avons actuellement :
http://our.api.com/Product?id=["101404","7267261"]
Devrions-nous simplifier cela comme suit :
http://our.api.com/Product?id=101404,7267261
Ou est-ce que l'entrée JSON est pratique ? Ou est-ce plus pénible ?
Nous pouvons vouloir accepter les deux styles, mais cette flexibilité ne provoque-t-elle pas en fait plus de confusion et de maux de tête (maintenabilité, documentation, etc.) ?
Un cas plus complexe est celui où nous voulons offrir des entrées plus complexes. Par exemple, si nous voulons autoriser des filtres multiples pour la recherche :
http://our.api.com/Search?term=pumas&filters={"productType":["Clothing","Bags"],"color":["Black","Red"]}
Nous ne voulons pas nécessairement mettre les types de filtre (par exemple productType et color) comme noms de requête comme ceci :
http://our.api.com/Search?term=pumas&productType=["Clothing","Bags"]&color=["Black","Red"]
Parce que nous voulions regrouper toutes les entrées de filtres.
En fin de compte, cela a-t-il vraiment de l'importance ? Il est probable qu'il existe tellement d'utilitaires JSON que le type d'entrée n'a pas beaucoup d'importance.
Je sais que nos clients JavaScript effectuant des appels AJAX à l'API peuvent apprécier les entrées JSON qui leur facilitent la vie.