gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:29:38 25 4
gpt4 key购买 nike

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

我考虑了几种方法:

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

  2. 在查询字符串中传递参数。
    What is best way to pass multiple query parameters to a restful api?

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

  4. 使用 POST 本身就可以让我传递带有参数的对象。

  5. 正在研究 ODATA,因为 Web API(当前)支持它。我还没有做过太多这方面的工作,所以我不是很熟悉。

看来正确的 REST 实践表明,当提取数据时,您应该使用 GET。然而,GET 也应该是无效的(不会产生副作用),我想知道我的具体实现是否违反了这一点,因为我在 API 系统中标记了记录,因此我产生了副作用。

这也让我想到了支持可变参数的问题。如果输入参数列表发生变化,如果这种情况经常发生,则必须重新定义选择 3 的路线,这将是一件很乏味的事情。如果在运行时定义参数会发生什么......

无论如何,对于我的具体实现,哪种选择(如果有)似乎最好?

最佳答案

我认为最简单的方法是简单地使用AttributeRouting

这在您的 Controller 中是显而易见的,为什么您希望在全局 WebApiConfig 文件中使用它?

示例:

    [Route("api/YOURCONTROLLER/{paramOne}/{paramTwo}")]
public string Get(int paramOne, int paramTwo)
{
return "The [Route] with multiple params worked";
}

{} 名称需要与您的参数匹配。

就这么简单,现在您有一个单独的 GET 来处理此实例中的多个参数。

关于asp.net - 我应该如何将多个参数传递给 ASP.Net Web API GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10937524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com