Eu estou usando a API da Web .Net MVC4 para (espero) implementar uma API RESTful. Preciso passar alguns parâmetros para o sistema e fazê-lo executar alguma ação e, em seguida, retornar uma lista de objetos como resultado. Especificamente, estou passando em duas datas e retornando registros que caem entre elas. Também acompanho os registros retornados para que as chamadas subseqüentes não sejam reprocessadas no sistema.
Eu considerei algumas abordagens:
Serializando os parâmetros em uma única cadeia JSON e separando-a na API. http://forums.asp.net/t/1807316.aspx/1
Passe os parâmetros na string de consulta.
Qual é a melhor maneira de passar vários parâmetros de consulta para uma API repousante?Definindo os parâmetros na rota: api / controller / date1 / date2
Usando um POST que inerentemente me permite passar um objeto com parâmetros.
Pesquisando ODATA desde a API da Web (atualmente) suporta. Ainda não fiz muito com isso, então não estou muito familiarizado com isso.
Parece que as práticas REST adequadas indicam quando os dados são extraídos, você deve usar um GET. No entanto, o GET também deve ser nulipotente (não produz efeitos colaterais), e me pergunto se minha implementação específica viola isso, já que marquei registros no sistema da API, portanto, estou produzindo efeitos colaterais.
Também me levou à questão de suportar parâmetros variáveis. Se a lista de parâmetros de entrada mudar, seria tedioso redefinir sua rota para a Opção 3 se isso acontecer muito. E o que pode acontecer se os parâmetros forem definidos em tempo de execução ...
De qualquer forma, para minha implementação específica, qual opção (se houver) parece melhor?