Я использую веб-API .Net MVC4 для (надеюсь) реализации RESTful API Мне нужно передать системе несколько параметров и заставить ее выполнить какое-то действие, а затем вернуть список объектов в качестве результатов. В частности, я передаю две даты и возвращаю записи, которые попадают между ними. Я также отслеживаю возвращенные записи, чтобы последующие вызовы не обрабатывались в системе повторно.
Я рассмотрел несколько подходов:
Сериализация параметров в одну строку JSON и разделение ее в API. http://forums.asp.net/t/1807316.aspx/1
Передайте параметры в строке запроса.
Как лучше всего передать несколько параметров запроса в restful API?
Определение параметров маршрута: api/controller/date1/date2
Использование POST, которое по своей сути позволяет мне передавать объект с параметрами.
Изучение ODATA, так как Web API (в настоящее время) поддерживает его. Я еще не много сделал с этим, поэтому я не очень знаком с этим.
Кажется, что правильные методы REST указывают на то, что при извлечении данных вы должны использовать GET. Однако GET также должен быть нуллипотентным (не вызывать побочных эффектов), и мне интересно, нарушает ли моя конкретная реализация это, поскольку я помечаю записи в системе API, следовательно, я создаю побочные эффекты.
Это также привело меня к вопросу о поддержке переменных параметров.Если список входных параметров изменится, будет утомительно переопределять маршрут для Варианта 3, если это происходит часто. И что может случиться, если параметры определяются во время выполнения...
В любом случае, для моей конкретной реализации, какой выбор (если вообще есть) кажется лучшим?