我读过有关SOAP和REST作为Web服务通信协议之间差异的文章,但我认为REST优于SOAP的最大优势是:
REST更加动态,无需创建和更新UDDI.
REST不限于XML格式.REST Web服务可以发送纯文本,JSON和XML.
但SOAP更标准化(Ex;安全性).
那么,我在这些方面是否正确?
REST是一种更好的Web服务方法还是SOAP?或者它们是针对不同问题的不同工具?或者这是一个细致入微的问题 - 也就是说,在某些领域比另一个稍微好一点,等等?
赏金编辑:
现在,差不多三年后,我想再次提出这个问题 - 提供奖励以鼓励深入回答.我特别感谢有关这些概念及其与PHP-universe和现代高端Web应用程序的关系的信息.
跟进此帖子的问题:
目前我对SOAP和RESTful Services之间的差异略有了解.
我的问题是我何时应该使用SOAP,何时应该使用RESTful; 在性能/速度或请求处理方面,哪一个"更好"?
我正在RESTful(java)中第一次实现,我想要了解更多; 我以前处理过SOAP.
我目前发现类似的是使用互联网协议(HTTP)在消费者和提供者之间交换数据.
不同之处是:
这就是我所知道的他们之间的差异.任何人都可以纠正我并添加更多.
来自MSDN杂志https://msdn.microsoft.com/en-us/magazine/dd315413.aspx和https://msdn.microsoft.com/en-us/magazine/dd942839.aspx 我理解
当使用HTTP向RESTful端点请求数据时,使用的HTTP谓词是GET.
使用REST意味着您可以利用HTTP缓存和其他功能,如条件GET,这有助于扩展服务.其中许多技术不能与SOAP一起使用,因为SOAP仅在HTTP上使用POST.
来自维基百科页面http://en.wikipedia.org/wiki/Representational_state_transfer
RESTful系统通常(但不总是)通过超文本传输协议与Web浏览器使用的相同HTTP动词(GET,POST,PUT,DELETE等)进行通信,以检索网页并将数据发送到远程服务器.
但是,使用HTTP POST从资源获取数据会违反REST架构吗?换句话说,基于SOAP的Web服务可以是RESTful吗?
RESTful和基于SOAP的Web服务之间是否还有其他差异?
根据我对REST的理解,隐含的假设是所有操作都是CRUD操作.有时,您不是在进行CRUD操作,而是在做一些更复杂的逻辑.在这种情况下,SOAP不是更合适吗?或者是所有操作都是如此,无论一系列CRUD操作有多复杂,所以它们应该分成一组较小的CRUD操作来一个接一个地调用?但是,这不会使您尝试的操作更加繁琐吗?我试图了解何时使用SOAP而不是REST更有意义.
(不是重复我应该使用休息还是肥皂.这个问题只有一个答案,除了开销之外没有提供很多参数).
在将此问题标记为重复之前,请考虑我正在寻找在我之前做出选择并根据自己的经验解释其原因的人的答案.简单地说"开销"或"更复杂"的答案不适合该配置文件.
现在提问:
前段时间我开始使用Soap(PHP/Zend_Soap_Server,Zend_Soap_Autodiscover)设置一个新的api.虽然我已经想出如何使用肥皂,但复杂性让我想知道这是否是未来维护的好选择.
我听说过REST,但没有任何经验.
所以问题是:REST与SOAP的优点和缺点是什么?在创建一个全新的api(相当复杂的api,几十种方法,使用ssl,必须具有良好的安全性等),REST或SOAP时,你的建议是什么?
如果您认为您的答案在REST和SOAP之间取得平衡,并且特定的依赖项或功能会缩小规模,请务必询问您需要知道的内容.我会尽快回答.
api功能的简短列表:
api的位置基本如下:
互联网 - >网站 - > [内部网络] - > API /后端 - >数据库
感谢您提前的时间..