自从过去几个月以来,这个 Asp.Net Web API 似乎是微软的一个突出产品。它是 WS* 服务的替代品吗?它与 WCF 服务有何不同?我们在哪里可以看到它最适合 Web 应用程序开发?
2 回答
ASP.NET Web API 是一个用于构建通过 HTTP 公开的 Web 服务的框架。它非常适合(但不限于)构建 RESTful Web 服务。
此类 Web 服务是构建 SOAP RPC / WS* Web 服务的替代方案,因为它们更简单、重量更轻,并且客户端和服务器之间的耦合更少。
传统的“WCF 服务”支持 SOAP RPC 而不是 REST,这些服务往往很复杂,并且在客户端和服务器之间具有紧密耦合。广泛的互操作性可能变得难以实现。但是,传统的 WCF 服务可以通过多种协议进行通信 - TCP 对于内部服务(同一 DMZ 中的服务)特别有用。
(虽然 WCF 主要与 SOAP RPC 样式的服务相关联,但 WCF 中至少有 3 次尝试支持构建 RESTful Web 服务。这些尝试都已被 ASP.NET Web API 取代。)
ASP.NET Web API 最适合通过 HTTP 生成面向公众的 RESTful Web 服务(也称为超媒体 API)。为此,在开始使用 ASP.NET Web API 之前,对 REST 架构风格有一个很好的理解是很重要的。参见“REST in Practice”、“The RESTful Web Services Cookbook”和“Building Hypermedia APIs with HTML5 and Node”等书籍。
Web 服务是 WCF 的一部分。与 Web 服务相比,WCF 为开发服务提供了更多的灵活性和可移植性。我们仍然比 Web 服务有更多的优势,下表提供了它们之间的详细区别。