Jak należy przekazać wiele parametrów do GET ASP.Net Web API?

Korzystam z interfejsu API .Net MVC4 Web, aby (mam nadzieję) zaimplementować interfejs API RESTful. Muszę przekazać kilka parametrów do systemu i wykonać pewną akcję, a następnie zwrócić listę obiektów jako wyniki. W szczególności przechodzę w dwóch terminach i wracam między nimi. Śledzę również zwrócone rekordy, aby kolejne wywołania nie były ponownie przetwarzane w systemie.

Rozważałem kilka podejść:

Szeregowanie params na jeden ciąg JSON i wybranie go w API.http://forums.asp.net/t/1807316.aspx/1

Podaj parametry w ciągu zapytania.
Jaki jest najlepszy sposób na przekazanie wielu parametrów zapytania do spokojnego interfejsu API?

Definiowanie parametrów na trasie: api / controller / date1 / date2

Użycie POST, który z natury pozwala mi przekazać obiekt z parametrami.

Badanie ODATA, ponieważ Web API (obecnie) obsługuje tę funkcję. Nie zrobiłem jeszcze wiele z tym, więc nie jestem z nim dobrze zaznajomiony.

Wydaje się, że odpowiednie praktyki REST wskazują, kiedy dane są pobierane, należy użyć GET. Jednak GET powinien również być nullipotentem (nie wywołuje skutków ubocznych) i zastanawiam się, czy moja specyficzna implementacja narusza to, ponieważ zaznaczam rekordy w systemie API, stąd też wytwarzam efekty uboczne.

Doprowadziło mnie to również do pytania o obsługę zmiennych parametrów. Jeśli lista parametrów wejściowych ulegnie zmianie, nudne byłoby ponowne definiowanie trasy dla wyboru 3, jeśli to się często zdarza. A co może się stać, jeśli parametry są zdefiniowane w czasie wykonywania ...

W każdym razie dla mojej konkretnej implementacji, który wybór (jeśli w ogóle) wydaje się najlepszy?

questionAnswers(9)

yourAnswerToTheQuestion