我正在使用 .Net MVC4 Web API 来(希望)实现一个 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 重新定义您的路线会很乏味。如果在运行时定义参数可能会发生什么......
无论如何,对于我的具体实现,哪种选择(如果有)似乎最好?