¿Cómo debo pasar varios parámetros a una API Web ASP.Net GET?

Estoy utilizando la API web de .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 resultados. Específicamente estoy pasando en dos fechas y devolviendo registros que caen entre ellas. También estoy haciendo un seguimiento de los registros devueltos para que las llamadas posteriores no sean reprocesadas en el sistema.

He considerado algunos enfoques:

Serialización de los parámetros en una sola cadena JSON y su separación 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 tranquila?

Definiendo los parámetros en la ruta: api / controller / date1 / date2

Usando un POST que inherentemente me permite pasar un objeto con params.

La investigación de ODATA desde la API web (actualmente) lo admite. No he hecho mucho con esto todavía, así que no estoy muy familiarizado con esto.

Parece que las prácticas de REST adecuadas indican cuándo se extraen los datos, debe usar un GET. Sin embargo, GET también debe ser nullipotente (no produce efectos secundarios), y me pregunto si mi implementación específica viola eso ya que marque los registros en el sistema API, por lo tanto, estoy produciendo efectos secundarios.

También me llevó a la cuestión de soportar parámetros variables. Si la lista de parámetros de entrada cambia, sería tedioso tener que volver a definir 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 la hay) parece mejor?

Respuestas a la pregunta(9)

Su respuesta a la pregunta