最佳答案
我正在使用。NetMVC4WebAPI (希望)实现 RESTful API。我需要向系统传入一些参数,让它执行一些操作,然后返回一个对象列表作为结果。具体来说,我要传递两个日期,并返回它们之间的记录。我还将跟踪返回的记录,以便后续调用不会在系统中重新处理。
我考虑了几种方法:
将参数序列化为一个 JSON 字符串并在 API 中将其分解。 Http://forums.asp.net/t/1807316.aspx/1
传递查询字符串中的参数。
将多个查询参数传递给静态 API 的最佳方法是什么?
定义路线中的参数: Api/controller/date1/date2
使用一个 POST,它本质上允许我传递一个带有参数的对象。
研究 ODATA,因为 Web API (目前)支持它。我还没有做很多这方面的工作,所以我不是很熟悉它。
正确的 REST 实践似乎表明,当数据被提取时,您应该使用 GET。然而,GET 也应该是无效的(不产生任何副作用) ,我想知道我的特定实现是否违反了这一点,因为我在 API 系统中标记了记录,因此我产生了副作用。
这也引出了支持可变参数的问题。如果输入参数列表发生变化,如果经常发生这种情况,那么重新定义选项3的路线就会很麻烦。如果在运行时定义参数会发生什么..。
在任何情况下,对于我的具体实现,哪种选择(如果有的话)似乎是最好的?