实时实际情况是SOAP Web服务优先于REST?

时间:2019-06-17 12:18:39

标签: java rest web-services soap

我读了很多关于为什么REST比SOAP更受青睐的知识,还有很多实际情况。但是我找不到关于何时可以比REST更喜欢SOAP的文章/答案。任何人都可以向我解释一个实时的实际情况,在这种情况下,SOAP比REST更可取?

注意-在未完全阅读该问题之前,请勿将此问题标记为重复。这不是REST与SOAP的重复。

注意-在未完全阅读该问题之前,请勿将此问题标记为重复。这不是REST与SOAP的重复。

1 个答案:

答案 0 :(得分:0)

何时应使用SOAP?代表性状态传输(REST)实现了标准的HTTP / HTTPS作为接口,允许客户端基于请求的URI获得对资源的访问。请务必注意,基于REST的服务是无状态的,因为http / https是本地无状态的。

在缓存中可以找到将HTTP / HTTPS作为接口实现的众多好处之一。可以在Web服务上进行缓存,就像在请求的网页上进行缓存一样。缓存可以减少Web服务器的处理并增加响应时间,因为已经处理和存储了内容以便立即访问。基于REST的服务执行的典型操作包括通用CRUD(创建,读取,更新和删除)操作以及不需要状态的操作。

另一方面,简单对象访问协议(SOAP)使用通用接口来传输消息。与REST不同,SOAP可以使用HTTP / HTTPS,SMTP,JMS或任何其他标准传输协议。此外,SOAP通过以下方式利用XML:

Define a message
Defines how a message is to be processed
Defines the encoding of a message
Lays out procedure calls and responses

随着REST与资源视图更加一致,SOAP与方法视图更加一致,因为业务逻辑通常通过SOAP Web服务作为方法公开,因为它们可以保留状态。此外,SOAP请求不会被缓存,因此每个请求都将由服务器处理。

如前所述,Soap确实保留了状态,这为需要执行事务的服务提供了优于REST的特殊优势,其中需要对服务进行多次调用才能完成任务。此外,由于REST当前不支持这种形式,因此SOAP对于以合同形式实现标准交换格式的企业级服务而言更为理想。

在银行业中,钱从一个帐户转移到另一个帐户中,可以看到一个现实的例子,其中,SOAP比REST更受青睐。 SOAP将允许银行对帐户执行交易,如果交易失败,SOAP将自动重试交易以确保请求已完成。不幸的是,使用REST,失败的服务调用必须由发出请求的应用程序手动处理。 参考文献:

Francia, S. (2010). SOAP vs. REST. Retrieved 11 20, 2011, from spf13: http://spf13.com/post/soap-vs-rest
Rozlog, M. (2010). REST and SOAP: When Should I Use Each (or Both)? Retrieved 11 20, 2011, from Infoq.com: http://www.infoq.com/articles/rest-soap-when-to-use-each