J'utilise l'API Web MVC4 de .Net pour mettre en œuvre (si tout va bien) une API RESTful. J'ai besoin de passer quelques paramètres au système et de lui faire exécuter une action, puis de retourner une liste d'objets comme résultats. Plus précisément, je dois transmettre deux dates et renvoyer les enregistrements qui se situent entre les deux. Je garde également une trace des enregistrements renvoyés afin que les appels ultérieurs ne soient pas retraités dans le système.
J'ai envisagé plusieurs approches :
-
Sérialiser les paramètres en une seule chaîne JSON et la décortiquer dans l'API. http://forums.asp.net/t/1807316.aspx/1
-
Passez les paramètres dans la chaîne de requête.
Quelle est la meilleure façon de passer plusieurs paramètres de requête à une api restful ? -
Définir les paramètres dans la route : api/controller/date1/date2
-
J'utilise un POST qui me permet de passer un objet avec des paramètres.
-
Recherche d'ODATA puisque l'API Web le prend (actuellement) en charge. Je n'ai pas encore fait grand-chose avec ça, donc je ne suis pas très familier avec ça.
Il semble que les bonnes pratiques REST indiquent que lorsque des données sont extraites, il faut utiliser un GET. Cependant, GET doit également être nullipotent (ne produit pas d'effets secondaires), et je me demande si mon implémentation spécifique ne viole pas cela puisque je marque les enregistrements dans le système API, et donc que je produis des effets secondaires.
Cela m'a également conduit à la question de la prise en charge des paramètres variables. Si la liste des paramètres d'entrée change, il serait fastidieux de devoir redéfinir votre itinéraire pour le choix 3 si cela se produit souvent. Et que se passerait-il si les paramètres étaient définis au moment de l'exécution...
Dans tous les cas, pour ma mise en œuvre spécifique, quel choix (le cas échéant) semble le meilleur ?