何时在Web服务方面使用SOAP而不是REST?

时间:2014-01-03 08:24:38

标签: .net wcf rest soap

目前我正在学习ASP.NET中的新主题Web服务,但我不了解Web服务中SOAP和RESTful的概念以及如何在.NET中创建这些类型的服务。

1 个答案:

答案 0 :(得分:8)

SOAP的一个主要好处是您拥有WSDL服务描述。您几乎可以自动发现服务并从该服务描述生成可用的客户端代理(生成服务调用,方法所需的数据类型等)。请注意,对于版本2.0,WSDL支持所有HTTP谓词,并且也可以用于记录RESTful服务,但是为此目的,WADL(Web应用程序描述语言)中有一个不太详细的替代方案。

使用RESTful服务,消息安全性由传输协议(HTTPS)提供,并且仅是点对点的。它没有标准的消息传递系统,并期望客户端通过重试来处理通信故障。 SOAP内置了成功/重试逻辑,即使通过SOAP中介提供端到端的可靠性。

RESTful API的一个主要优点是它可以灵活地进行数据表示,例如,您可以使用XML或JSON格式序列化数据。 RESTful API更清晰或更容易理解,因为它们添加了使用标准化URI的元素,并重视所使用的HTTP动词(即GET,POST,PUT和DELETE)。

RESTful服务也很轻量级,也就是说它们没有很多额外的xml标记。要调用RESTful API,您只需要一个浏览器或HTTP堆栈,几乎所有连接到网络的设备或机器都具有此功能。

最后,您选择的哪种架构确保开发人员可以轻松访问它,并且有详细记录。

REF:http://blog.manishchhabra.com/2013/04/rest-and-soap-web-services-analogy/