关于体系结构:在REST和SOAP服务之间进行选择的指南?

关于体系结构:在REST和SOAP服务之间进行选择的指南?

Guide to choosing between REST vs SOAP services?

是否有人链接到文档或在REST与SOAP之间做出决定的指南? 我理解这两者,但是正在寻找关键决策点的一些参考,例如安全性,这可能会使您倾向于彼此。


Google的热门产品似乎很全面。

我认为这里的问题是拥护彼此的拥护者太多,可能会更好地使用Google进行搜索,让自己更多地了解职业玩家/消费者的意见,然后自己做出决定。

我知道这听起来有些la脚,但是最终这些设计决策最终落到了由开发人员/架构师进行的工作中,并且在99%的时间里,问题域将是决定因素(或者至少应该是)。网络上的指南。


简单对象访问协议(SOAP)标准是一种XML语言,定义了消息体系结构和消息格式,由Web服务使用,它包含对操作的描述。 WSDL是一种基于XML的语言,用于描述Web服务以及如何访问它们。将在SMTP,HTTP,FTP等上运行。需要中间件支持,定义良好的机制以定义WSDL + XSD,WS-Policy SOAP等服务。SOAP将返回基于XML的数据SOAP提供安全性和可靠性标准

代表性状态转移(RESTful)Web服务。它们是第二代Web服务。 RESTful Web服务比基于SOAP的服务通过HTTP通信,并且不需要XML消息或WSDL服务API定义。对于REST,不需要中间件,只需要HTTP支持.WADL标准,REST可以返回XML,纯文本,JSON,HTML等

对于许多类型的客户端而言,使用RESTful Web服务更加容易,同时使服务器端能够发展和扩展。客户可以选择使用服务的某些或所有方面,并将其与其他基于Web的服务混搭。

1
2
3
4
5
6
REST uses standard HTTP so it is simplerto creating clients, developing APIs
REST permits many different data formats like XML, plain text, JSON, HTML where  as  SOAP only permits XML.
REST has better performance and scalability.
Rest and can be cached and SOAP can't
Built-in error handling where SOAP has No error handling
REST is particularly useful PDA and other mobile devices.

REST是易于与现有网站集成的服务。

SOAP具有一组协议,这些协议除其他外提供了安全性和可靠性的标准,并且可以与其他符合WS的客户端和服务器进行互操作。 SOAP Web服务(例如JAX-WS)在处理异步处理和调用中很有用。

对于复杂API,SOAP将更加有用。


您可以使用一个不错的流程图来帮助您在REST与SOAP之间做出决定。

链接至流程图:https://drive.google.com/file/d/0B3zMtAq1Rf-sdVFNdThvNmZWRGc/edit

链接到文章:https://www.linkedin.com/pulse/20140818062318-7933571-soap-vs-rest-flowchart-to-determine-the-right-web-services-protocol-for-your-needs

我用来做出此决定的其他两个因素是:

1)服务的客户是否需要XML以外的媒体类型(例如JSON)。如果是,则使用REST。

2)服务的客户端是否始终是应用程序/服务器(例如不是RIA或AJAX客户端)。如果不是,则倾向于REST,因为使用AJAX时更容易使用REST服务。


我认为REST和SOAP都可以用于实现类似的功能,但是通常,当需要SOAP的特定功能时,应该使用SOAP,而REST的优点通常使其成为最佳选择。但是,REST和SOAP都经常被称为" Web服务",并且经常被用来代替另一种,但是它们是完全不同的方法。 REST是用于构建客户端服务器应用程序的体系结构样式。 SOAP是用于在两个端点之间交换数据的协议规范。

我非常同意+ Rob Cooper的职务。是的,拥护者太多。我已经列出了肥皂和休息之间的区别。


推荐阅读