何时使用 WCF REST 和 WEB API

Posted

技术标签:

【中文标题】何时使用 WCF REST 和 WEB API【英文标题】:When to use WCF REST and WEB API 【发布时间】:2016-07-04 00:18:57 【问题描述】:

我对这两种技术,即WCF RESTasp.net WEB API 有点困惑。这两者有什么区别吗?什么时候应该使用一个而不是另一个?

【问题讨论】:

【参考方案1】:

我对这两种技术(即 WCF REST 和 asp.net WEB API)有点困惑。这两者有什么区别吗?

是的。两者都是提供 REST 样式服务的一种方式,但竞争技术生来不同

WCF REST 自然来自最初是 SOAP 的 WCF 世界。 WCF REST 通过提供基本的 JSON 有效负载而不是 SOAP 来改变这一点。然而,WCF REST 缺少某些功能,微软表示更新的 REST 功能只会进入 ASP.NET Web API。

与 WCF REST 不同,ASP.NET Web API 是为 REST 样式的 JSON 服务而设计的。

MSDN:

虽然 WCF 为编写 REST 风格的服务提供了一些支持,但ASP.NET Web API 中对 REST 的支持更加完善所有未来的 REST 功能改进都将在 ASP 中进行。 NET Web API。如果您有现有的 WCF 服务并且想要公开其他 REST 终结点,请使用 WCF 和 WebHttpBinding。 - Tell me more

操作:

什么时候应该使用一个而不是另一个?

如果您的意图是创建 SOAP 服务,或者您有现有的 WCF 服务,请使用带有 JSON 编码端点的 WCF。

如果您的意图是创建 REST 服务,尤其是在新应用程序中,请使用 ASP.NET Web API。

【讨论】:

@MicikyD 感谢您的回答,您能否解释一下 WCF REST 不支持哪些 REST 功能 "More suitable for access from various browsers, mobile devices etc enabling wide reach"。 WCF REST 没有那么多。 WCF 不支持 WebSocket;或 jQuery;无法与 SignalR 集成。【参考方案2】:

这取决于你想做什么来选择其中一个

基本上,您可以使用 WCF 创建基于服务的应用程序 但是使用 ASP.NET Web Api,您可以创建基于 Http 或 Https 的 Restful 服务。

【讨论】:

我的问题与 WCF REST 和 asp.net WEB API 不是常规的 wcf 服务有关。 这不能回答问题。 but with ASP.NET Web Api you can create Restful services based on Http or Https 也可以应用于 WCF REST【参考方案3】:

REST 和 WCF 是来自不同世界的含义 :) REST 是用于开发 Web 服务的规范(换句话说,一组约定)。 REST 不依赖于某些特殊的技术/平台/框架或语言。 WCF 是用于 Web 服务的 Microsoft 方法,本机预定义为开发基于 RPC 架构的 SOAP 服务。 RPC(远程过程调用)是一种将 Web 服务开发为一组带有参数的方法的方法,这些方法正在做一些工作。 REST 更面向 HTTP,主要概念是操作一些实体(Representational State Transfer)并对这些实体执行操作,而不仅仅是调用一些方法。使用 WCF 技术构建一些 REST 服务是可能的,但在我看来,WCF 不是实现此目标的好方法。

【讨论】:

您能否解释一下为什么 WCF 不是 REST 服务的好选择? 问题不在于WCF vs REST,而在于“WCF REST and WEB API”

以上是关于何时使用 WCF REST 和 WEB API的主要内容,如果未能解决你的问题,请参考以下文章

web service, wcf, wcf rest, web api之间的区别

WCF Web API WCF REST 和 Web Service 的区别

WCF REST 到 Web API [关闭]

WCF、Web API、WCF REST 和 Web 服务之间的区别?

Web Service vs WCF vs WCF REST vs Web API

Web Service vs WCF vs WCF REST vs Web API