【问题标题】:Actual difference b/w WCF and REST in a client perspective从客户端的角度来看,WCF 和 REST 之间的实际区别
【发布时间】:2013-11-06 05:45:07
【问题描述】:

从客户端的角度来看,黑白 WCF 与 REST 服务的实际区别是什么? 我知道以下区别 WCF 支持多种传输协议、托管、WS-* 特性以及基于 SOAP 消息等。 REST 服务基于 URI 的 HTTP 动词、JSON/XML 格式和超媒体作为状态管理,不需要 WSDL 文档 等。 我可以通过使用带有 JSON DATA 的“服务名称/方法名称”之类的 JQUERY 轻松地从 JavaScript 客户端使用 WCF 服务,我从未遇到过关于 SOAP 消息的任何复杂情况,所以我认为这适用于任何一种客户端,我发现所有 REST 专家都指出它最适合任何类型的客户端,因为没有 SOAP 消息的复杂性。那么请指导/建议我 REST 在客户端方面的主要优势? (忘记 WSDL 文档)。非常感谢您的出色回答

【问题讨论】:

  • 这是一个 SOAP 与 REST 的问题吗?如果是这样,这已在 SO 上多次回答:例如,here
  • 不幸的是,人们对 REST 的含义和含义存在巨大的误解,许多 SO 问题和答案都促成了这一点。您链接的那个就是一个很好的例子。

标签: wcf rest soap


【解决方案1】:

首先,请注意,通常称为 REST 的东西并不是 REST 的真正含义。我不知道它是什么时候以及如何开始的,但大多数人似乎认为 REST 只是将 HTTP 方法映射到 CRUD,或者使用 JSON,或者漂亮的 URI,或者类似的东西。

在您的设备上运行并连接到服务器的专用客户端应用程序与浏览器等通用客户端之间的区别是相同的。

REST 在客户端的主要优势是客户端和服务器实现之间缺乏耦合。使用 SOAP,您将绑定到客户端和服务器之间约定的实现,如果有人在未通知的情况下进行更改,则交互预计会中断。

使用 REST,除了入口点和可用的可用媒体类型之外,客户端不应拥有任何服务的先验信息。服务器应提供客户端将导航以查找其感兴趣的资源的链接,以便他们可以更优雅地处理更改。如果内部发生变化,客户甚至不应该注意到。我们只是获得新链接并像往常一样关注它们。如果发生剧烈变化,理想情况下,客户端不应轻易崩溃,并且可以继续逐步适应变化。

想想一个网站,比如 Stack Overflow 本身。当您进入家庭时,您已经知道什么是问题、答案和用户,因此您知道入口点和媒体类型。该网站为您提供问题和用户的链接,您只需按照提供的内容关注他们并按照您的意愿行事。您有一个通用客户端,一个浏览器,可以在任何类似的网站上运行,而不是在您的桌面上运行连接到 Stack Overflow 服务器的专用客户端应用程序。这就是区别。 REST 是一种遵循 Web 本身架构的架构风格。

【讨论】:

  • 谢谢@Pedro Werneck
猜你喜欢
  • 2014-08-29
  • 2011-05-11
  • 2018-10-01
  • 2011-12-04
  • 2016-06-08
  • 2020-10-10
  • 1970-01-01
  • 2020-03-10
  • 2022-01-13
相关资源
最近更新 更多