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

问题描述 投票:51回答:4

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

wcf web-services rest soap
4个回答
27
投票

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

WCF

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

休息

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搜索.....


121
投票

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

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

那些“一堆配置”是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在企业对企业应用程序中非常流行。


10
投票

来自MSDN

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

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


4
投票

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

无论WCF是否同时支持REST和SOAP,我们都会感到困惑?而且,通常,我们只看到关于SOAPREST的通用定义。因此,我们需要微软的一些东西让我们感受到真相:)所以这里是微软MSDN的截图:

MSDN article URLenter image description here

所以,是的,WCF支持两者。

在OP的背景下:

  • SOAP服务: 在WCF编程模型中,支持使用Java,其他平台构建的系统之间的互操作性,以及使用Microsoft®支持的消息传递标准的系统之间的互操作性。它们还支持HTTP,TCP,命名管道和MSMQ等传输。
  • Web HTTP服务: 在WCF编程模型中支持REST。 [来源:MSDN]
© www.soinside.com 2019 - 2024. All rights reserved.