有没有人有关于在REST与SOAP之间做出决定的文档或指南的链接?我理解这两点,但我正在寻找关键决策点的一些参考,例如,安全性,这可能会让你倾向于一个或另一个。
答案 0 :(得分:6)
Google first hit似乎非常全面。
我认为这里的问题是,有太多的支持者,可能更好的谷歌搜索和更多地掌握专业人士/骗子并做出自己的决定。
我知道这听起来有点蹩脚,但最终这些设计决策落在了开发人员/架构师的工作上,并且 99%的时候,问题域将成为决定因素 (或者至少它应该是),而不是网上的指南。
答案 1 :(得分:1)
简单对象访问协议(SOAP)标准一种定义消息体系结构和消息格式的XML语言,由Web服务使用,它包含操作的描述。 WSDL是一种基于XML的语言,用于描述Web服务以及如何访问它们。将运行在SMTP,HTTP,FTP等上。需要中间件支持,定义良好的机制来定义WSDL + XSD等服务,WS-Policy SOAP将返回基于XML的数据SOAP提供安全性和可靠性标准
Representational State Transfer(RESTful)Web服务。它们是第二代Web服务。 RESTful Web服务,通过HTTP进行通信而不是基于SOAP的服务,并且不需要XML消息或WSDL服务API定义。对于REST,不需要中间件只需要HTTP支持.WADL标准,REST可以返回XML,纯文本,JSON,HTML等
许多类型的客户端更容易使用RESTful Web服务,同时使服务器端能够发展和扩展。客户可以选择使用服务的部分或全部方面,并将其与其他基于Web的服务进行混搭。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)在处理异步处理和调用时非常有用。对于Complex API,SOAP将更有用。
答案 2 :(得分:0)
我认为REST和SOAP都可用于实现类似的功能,但一般情况下,当需要SOAP的特定功能时,应使用SOAP,而REST的优势使其通常成为最佳选择。但是,REST和SOAP通常被称为" Web服务,"一个经常被用来代替另一个,但它们是完全不同的方法。 REST是用于构建客户端 - 服务器应用程序的架构风格。 SOAP是用于在两个端点之间交换数据的协议规范。
我非常同意+ Rob Cooper的职位。是的,有这么多的拥护者。我列出了difference between soap and rest。
答案 3 :(得分:0)
您可以使用一个很好的流程图来帮助您在REST与SOAP之间做出决定。
链接到流程图:https://drive.google.com/file/d/0B3zMtAq1Rf-sdVFNdThvNmZWRGc/edit
我用来做出这个决定的另外两个因素是:
1)服务的客户端是否需要XML以外的媒体类型(例如JSON)。如果是,则使用REST。
2)服务的客户端是否始终是应用程序/服务器(例如,不是RIA或AJAX客户端)。如果不是,这就倾向于REST,因为在使用AJAX时更容易使用REST服务。