Sto usando l'API Web .Net MVC4 per (si spera) implementare un API RESTful. Devo passare alcuni parametri al sistema e farlo eseguire alcune azioni, quindi restituire un elenco di oggetti come risultati. In particolare, sto passando in due date e restituendo i record che cadono tra di loro. Sto anche tenendo traccia dei record restituiti in modo che le chiamate successive non vengano rielaborate nel sistema.
Ho preso in considerazione alcuni approcci:
Serializzare i parametri in un'unica stringa JSON e selezionarli nell'API. http://forums.asp.net/t/1807316.aspx/1
Passa i parametri nella stringa di query.
Qual è il modo migliore per passare più parametri di query a un API riposante?Definizione dei parametri nel percorso: api / controller / date1 / date2
Utilizzo di un POST che intrinsecamente mi consente di passare un oggetto con parametri.
Ricerca ODATA poiché l'API Web (attualmente) la supporta. Non ho ancora fatto molto con questo, quindi non ne ho molta familiarità.
Sembra che le pratiche REST appropriate indicano quando i dati vengono estratti, è necessario utilizzare un GET. Tuttavia, GET dovrebbe anche essere nullipotent (non produce effetti collaterali) e mi chiedo se la mia implementazione specifica violi dal momento che segnare i record nel sistema API, quindi sto producendo effetti collaterali.
Mi ha anche portato alla questione del supporto di parametri variabili. Se l'elenco dei parametri di input cambia, sarebbe noioso dover ridefinire il percorso per Choice 3 se ciò accade molto. E cosa potrebbe accadere se i parametri fossero definiti in fase di esecuzione ...
In ogni caso, per la mia specifica implementazione, quale scelta (se presente) sembra la migliore?