【问题标题】:ASP.NET Web API best practice to send data to the server将数据发送到服务器的 ASP.NET Web API 最佳实践
【发布时间】:2016-07-06 14:47:11
【问题描述】:

我目前正在开发 ASP.NET Web API 应用程序,我正在使用 route parameters 向服务器发送数据,并且我还能够像 JSON 格式一样以 body 发送数据并发送它到服务器。

示例:

http://localhost:59035/api/Authors/AddAuthors/MyTokenKey/AuthorName

如果我这样发送正文中的数据:

TokenKey=MyTokenKey&AuthorName=AuthorName

比我的服务器方法也被调用。两种方式我们都可以发送数据。

那么混乱是将数据发送到服务器的最佳方式是什么?

  1. 在路由参数中
  2. 在体内。

如果我们将数据传递给route parameters而不是其他人可以看到,那么我们的请求是在哪个方法中都没有关系,比如POSTGET或其他任何东西..

调用 Web API 的良好做法。

我还想知道从server sideclient side 调用Web API 的好方法。

例如,我创建了 Web API 并托管在 one domain 上,我想从 another domain 调用 Web API。那么从client browser using AJAX 调用API 或调用我必须从服务器调用Web API 哪个更好。

  1. Web API 必须必须从 Server 调用?

谢谢。

【问题讨论】:

    标签: c# asp.net asp.net-web-api asp.net-web-api2 api-design


    【解决方案1】:

    GETPOST请求传递参数的唯一区别是GET的参数长度是有限的,我们可以认为POST参数是无限的。所以这取决于你选择哪种方法。

    使用 AJAX 或使用其他 WebAPI 调用 API 怎么样。 AJAX 不支持没有额外操作的跨域请求。如果您的 API 部署在 domain1 上,并且您想使用来自 domain2 的 AJAX 请求调用它,那么您应该在 domain1 上定义一个允许来自 domain2 的请求的跨域标头。

    如果是您的 API,您可以定义这样的标头。如果是第三方API,不允许跨域请求,可能需要从自己的WebAPI调用。

    【讨论】:

    • 谢谢,但是我们必须以哪种方法调用 API?喜欢来自Clients browser using the AJAXserver
    • 这是我的own API,但我想提供给我所有的domainsAndroidIOs aslo。允许“跨域请求”是否安全?
    • 如果是开放的API,你可以通过设置跨域头到"*"来允许任何域的访问
    • 那么我必须在哪里设置这个标题?在我必须调用 API 的客户端还是在 Web API 项目中?
    • 你应该在你的 API 端设置它asp.net/web-api/overview/security/…
    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多