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