WCF,Rest和SOAP之间有什么关系?

时间:2013-02-28 04:03:18

标签: wcf web-services rest soap

WCF与REST&SOAP之间的关系是什么? WCF是基于这些技术之一(REST还是SOAP)还是单独的技术?

4 个答案:

答案 0 :(得分:121)

WCF是用于构建分布式系统的消息传递框架。分布式系统主要只是Web服务的另一个词。

这意味着您可以使用C#(或任何.NET语言)编写方法,然后将一堆配置应用于代码,使其他人可以访问您的代码并将代码转换为Web服务。< / p>

那些“一堆配置”是WCF。如果您围绕C#代码设置WCF配置以将其公开为RESTful服务,则WCF允许您使用REST将方法公开给其他计算机或应用程序。或者,您可以轻松地使用相同的C#方法,并通过SOAP协议使它们可用。

如果您有一个名为“GetData()”的方法,则可以设置WCF配置,以使该方法在IIS中托管的服务中可用。当有人调用该服务时,他们可以向http://www.yourdomain.com/SomeService/GetData发送HTTP GET请求,GetData方法将收到该消息并发回响应。当您通过HTTP发出GET请求时,您正在使用REST。 REST几乎与HTTP绑定为传输协议。 REST也没有标准的消息格式。无论你想在HTTP消息中发送什么,然而你想发送它都没关系。您可以发送XML或JSON,也可以只发送纯文本。您也可以使用POST,GET或PUT或任何HTTP动词。

使用SOAP,您可以使用任何传输协议将消息发送到服务 - 您不依赖于HTTP。 SOAP消息旨在实现传输中立。它们以XML编码,XML始终在信封节点内部具有头部和主体节点。 SOAP有许多Web标准 - 例如,用于将安全性,会话和其他功能放入消息标题中的标准。此外,使用SOAP,您将获得一个WSDL,我不会在这里解释,但它使客户端编程更容易。大多数编程语言都有一种获取WSDL并将其转换为强类型方法和对象的方法,以便您的服务易于调用。

REST在互联网上非常流行,并且可以像互联网一样可扩展(即非常可扩展)。 SOAP在企业对企业应用程序中非常流行。

答案 1 :(得分:27)

WCF不是自动REST或SOAP,但您可以这样做。你需要的是一个教程:

WCF

http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows

REST

http://rest.elkstein.org/

以下是其他一些有趣的内容:

WCF - REST / SOAP

https://msdn.microsoft.com/en-us/library/hh323708(v=vs.100).aspx

WCF和REST

https://msdn.microsoft.com/en-us/library/ee391967.aspx

或者您可以自己进行google / bing / metacrawler / altavista搜索.....

答案 2 :(得分:10)

来自MSDN

  

WCF编程模型提供各种功能,例如SOAP   服务,Web HTTP服务,数据服务,富Internet应用程序   (RIA)服务和工作流服务。 SOAP服务支持   使用Java构建的系统之间的互操作性,其他   平台,以及那些使用受支持的消息传递标准的平台   通过Microsoft®。 SOAP服务还支持HTTP等传输,   TCP,命名管道和MSMQ。 Web HTTP服务和数据服务   支持REST。 Web HTTP服务使您可以控制服务   位置,请求和响应,格式和协议。数据服务   使您能够将数据模型和数据驱动逻辑公开为服务。   WCF还包括两种编程模型:服务模型和   渠道模型。服务模型提供了一个定义框架   数据合同,服务合同和服务行为。这个频道   model支持指定格式,传输和协议。

     

SOAP和REST服务都可以为Web提供功能   应用程序,两者都可用于交换信息   网络的分布式环境。每个人都有自己的优势,而且   限制。

答案 3 :(得分:4)

虽然,这个问题有几个很好的答案,只需加入我的2美分,尝试新手 WCF vs SOAP vs REST - 完整服务,让他们更容易理解。

我们感到困惑, WCF是否同时支持 REST SOAP 通常,我们只看到有关{{3}的通用定义}和SOAP。所以,我们需要微软的一些东西让我们感受到真相:)所以这里是 Microsoft REST的截图:

MSDN MSDN article URL

所以, ,WCF支持两者。

在OP的背景下:

  • SOAP服务:
    在WCF编程模型中支持使用Java构建的系统之间的互操作性,其他 平台,以及那些使用受支持的消息传递标准的平台 通过Microsoft®。这些也支持HTTP等传输, TCP,命名管道和MSMQ。
  • Web HTTP服务:在WCF编程模型中支持 REST 。 [来源:enter image description here]