有人有关于如何在REST和SOAP之间做出决策的文档或指南链接吗?我理解这两个概念,但想要一些关于关键决策点(例如安全性)的参考。
有人有关于如何在REST和SOAP之间做出决策的文档或指南链接吗?我理解这两个概念,但想要一些关于关键决策点(例如安全性)的参考。
谷歌首个搜索结果看起来非常全面。
我认为问题在于有太多人支持其中之一,最好是自己通过谷歌搜索来了解更多的利弊,然后做出自己的决定。
我知道这听起来有些糟糕,但最终这些设计决策落实到开发者/架构师身上,而99%的情况下,问题域将是决定因素(或至少应该是),而不是网络上的指南。
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都可以用于实现类似的功能,但通常情况下,当需要SOAP的特定功能时,应该使用SOAP,否则REST的优势使其成为一般最佳选择。然而,REST和SOAP经常被称为“Web服务”,并且一个常常被用来代替另一个,但它们是完全不同的方法。REST是一种构建客户端-服务器应用程序的架构风格。SOAP是一种协议规范,用于在两个端点之间交换数据。
我非常赞同+Rob Cooper在他的帖子中的观点。是的,有很多支持者。我已经列出了SOAP和REST之间的区别。
有一个很好的流程图可以帮助您在 REST 和 SOAP 之间做出决策。
流程图链接: https://drive.google.com/file/d/0B3zMtAq1Rf-sdVFNdThvNmZWRGc/edit
我用来做出这个决定的另外两个因素是:
1)服务的客户端是否需要使用除 XML(例如 JSON)以外的媒体类型。如果是,那么请使用 REST。
2)服务的客户端是否总是应用程序/服务器(例如不是 RIA 或 AJAX 客户端)。如果不是,则更倾向于使用 REST,因为在使用 AJAX 时更容易消费 REST 服务。