J'utilise l'API Web .Net MVC4 pour implémenter (espérons-le) une API RESTful. Je dois transmettre quelques paramètres au système et lui faire effectuer une action, puis renvoyer une liste d'objets en tant que résultats. Plus précisément, je passe deux dates et je renvoie les enregistrements qui se situent entre elles. Je garde également une trace des enregistrements renvoyés afin que les appels suivants ne soient pas retraités dans le système.
J'ai envisagé quelques approches:
Sérialisation des paramètres en une seule chaîne JSON et sélection de celle-ci 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 transmettre plusieurs paramètres de requête à une API reposante?Définition des paramètres de la route: api / controller / date1 / date2
En utilisant un POST qui me permet intrinsèquement de passer un objet avec des paramètres.
Recherche ODATA puisque l'API Web (actuellement) le prend en charge. Je n'ai pas encore fait grand chose avec cela, donc je ne suis pas très familier avec cela.
Il semble que les bonnes pratiques REST indiquent que lorsque les données sont extraites, vous devez utiliser un GET. Cependant, GET devrait également être nullipotent (ne produit aucun effet secondaire), et je me demande si mon implémentation spécifique viole cela puisque je marque des enregistrements dans le système API, donc 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 redéfinir votre itinéraire pour le choix 3 si cela se produit souvent. Et que peut-il se passer si les paramètres sont définis au moment de l'exécution ...
Dans tous les cas, pour mon implémentation spécifique, quel choix (le cas échéant) me semble le mieux?