Estoy usando la API web .Net MVC4 para (con suerte) implementar una API RESTful. Necesito pasar algunos parámetros al sistema y hacer que realice alguna acción, luego devolver una lista de objetos como resultado. Específicamente, paso dos fechas y devuelvo registros que se encuentran entre ellas. También estoy haciendo un seguimiento de los registros devueltos para que las llamadas posteriores no se vuelvan a procesar en el sistema.
He considerado algunos enfoques:
Serializar los parámetros en una sola cadena JSON y separarlos en la API. http://forums.asp.net/t/1807316.aspx/1
Pase los parámetros en la cadena de consulta.
¿Cuál es la mejor manera de pasar múltiples parámetros de consulta a una API relajante?Definición de los parámetros en la ruta: api / controller / date1 / date2
Usando un POST que inherentemente me permite pasar un objeto con params.
Investigando ODATA ya que la API web (actualmente) lo admite. Todavía no he hecho mucho con esto, así que no estoy muy familiarizado con él.
Parece que las prácticas REST adecuadas indican cuándo se extraen los datos, debe usar un GET. Sin embargo, GET también debería ser nulipotente (no produce efectos secundarios), y me pregunto si mi implementación específica viola eso ya que marco registros en el sistema API, por lo tanto, estoy produciendo efectos secundarios.
También me llevó a la cuestión de admitir parámetros variables. Si la lista de parámetros de entrada cambia, sería tedioso tener que redefinir su ruta para la Opción 3 si eso sucede mucho. Y qué podría pasar si los parámetros se definen en tiempo de ejecución ...
En cualquier caso, para mi implementación específica, ¿qué opción (si hay alguna) parece mejor?