8

我是 ASP.NET Web API 的新手。谁能告诉我

  • 为什么我们需要 Web API?
  • 它与来自 MVC 的 rest full api 有何不同?
  • 何时使用 MVC4 web api?
  • MVC中什么是restful api
4

3 回答 3

12

WebAPI 基于 MVC,但有一些细微的差别。您需要了解 WebAPI 是独立于 MVC 的东西,并且不需要 MVC。您可以单独安装 WebAPI,也可以从默认的 MVC 模板中卸载它。

确实,MS 可以将 WebAPI 直接构建到 MVC 控制器中,但他们选择将 API 控制器与 MVC 控制器分开,因为它们确实是处理请求和响应的不同方式。

您可以在 WebAPI 中做而在 MVC 中不能(或至少不那么容易)做的事情的示例包括:

  • 内容协商
    • 这允许调用客户端选择返回数据的格式,例如 XML 或 JSON。
  • OData 支持
    • 这允许调用者在服务器上“过滤”结果,而无需服务方法专门支持它。例如,如果您想按名字对结果进行排序,那么只需指定 OData 查询参数即可

WebAPI 为处理数据结果集提供了强大的功能。MVC 不提供那种功能。

您倾向于将 WebAPI 用于 Ajax 请求或不需要 WCF 复杂性的基于 Web 服务的请求。

RESTful API 并不特定于 MVC 或 WebAPI。它们只是一种关于如何在服务中设计 HTTP 请求的理念。确实有很多,但我不会深入。

于 2013-03-16T08:14:42.430 回答
1

MVC 被优化为向 Web 浏览器客户端提供信息。如果你的客户是别的东西,从长远来看,Web API 会让你的生活更轻松。

Web API 是对 Web 堆栈的完全重写。在核心上,它比 MVC 建立在其上的 12 年历史的基础架构更干净、更灵活。Web API 还没有与 MVC 相同级别的工具、附加组件、插件,但那将会到来。

于 2013-03-16T16:41:50.670 回答
1

WCF 团队在 Microsoft 与 MVC 团队合并。WCF 不会消失,但对于简单的 RESTFUL 服务调用,MVC 控制器是天作之合,对其进行修改可以实现非常简单的 Web API。

虽然我们中的许多人都觉得 WCF 相对容易,但也有很多人害怕它和/或没有/花时间学习它,因此他们 a. 仍然使用 ASMX,b。仍然从未采用过服务,或者现在使用 Web API,是 c。很高兴他们可以很容易地启动并运行宁静的 Web 服务。

所以实际上这是一个舒适程度、适应能力、改变能力的问题,Web API 确实有它的位置。它不能取代 WCF,因为 WCF 具有高级配置,具有执行 SOAP 的所有绑定和能力,而不仅仅是 REST,许多应用程序仍然需要 SOAP 协议。

于 2013-03-16T07:49:15.273 回答