小编sig*_*606的帖子

我应该如何将多个参数传递给ASP.Net Web API GET?

我正在使用.Net MVC4 Web API(希望)实现RESTful api.我需要将一些参数传递给系统并让它执行一些操作,然后返回一个对象列表作为结果.具体来说,我传递了两个日期并返回它们之间的记录.我还跟踪返回的记录,以便后续调用不会在系统中重新处理.

我考虑过几种方法:

  1. 将params序列化为单个JSON字符串并在API中将其分开. http://forums.asp.net/t/1807316.aspx/1

  2. 在查询字符串中传递参数.
    将多个查询参数传递给restful api的最佳方法是什么?

  3. 定义路径中的参数:api/controller/date1/date2

  4. 使用POST本身可以让我传递一个带有params的对象.

  5. 研究ODATA,因为Web API(目前)支持它.我还没有做太多,所以我对它不是很熟悉.

似乎正确的REST实践表明何时提取数据,您应该使用GET.但是,GET也应该是无效的(不会产生副作用),我想知道我的具体实现是否违反了,因为我在API系统中标记了记录,因此我产生了副作用.

它还引出了支持变量参数的问题.如果输入参数列表发生变化,那么如果发生很多事情,必须重新定义选择3的路线将是很繁琐的.如果在运行时定义参数会发生什么......

在任何情况下,对于我的具体实现,哪个选择(如果有的话)似乎最好?

asp.net rest asp.net-mvc asp.net-mvc-4 asp.net-web-api

131
推荐指数
7
解决办法
29万
查看次数