Używam Web API .Net MVC4 do (miejmy nadzieję) zaimplementować RESTful api. Muszę przekazać kilka parametrów do systemu i zlecić mu wykonanie jakiejś czynności, a następnie zwrócić listę obiektów jako wyniki. Dokładniej mówiąc, podaję dwie daty i zwracam rekordy, które mieszczą się między nimi. Śledzę również zwracane rekordy, aby kolejne wywołania nie były ponownie przetwarzane w systemie.
Rozważyłem kilka podejść:
Serializowanie parametrów w jeden ciąg JSON i wybieranie ich w interfejsie API. http://forums.asp.net/t/1807316.aspx/1
Przekaż parametry w ciągu zapytania.
Jaki jest najlepszy sposób przekazania wielu parametrów zapytania do spokojnego interfejsu API?Definiowanie parametrów w trasie: api / controller / date1 / date2
Użycie POST, który z natury pozwala mi przekazać obiekt z parametrami.
Badanie ODATA, ponieważ obsługuje je Web API (obecnie). Nie zrobiłem jeszcze wiele z tym, więc nie jestem z tym zaznajomiony.
Wygląda na to, że właściwe praktyki REST wskazują, kiedy pobierane są dane, należy użyć GET. Jednak GET powinien również być nieulotny (nie wywołuje skutków ubocznych) i zastanawiam się, czy moja konkretna implementacja to narusza, skoro zaznaczam rekordy w systemie API, stąd generuję 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, ponowne zdefiniowanie trasy dla Wyboru 3 byłoby żmudne, gdyby zdarzało się to często. A co by się stało, gdyby parametry zostały zdefiniowane w czasie wykonywania ...
W każdym razie, w przypadku mojej konkretnej realizacji, który wybór (jeśli w ogóle) wydaje się najlepszy?