SOAP与REST API比较

SOAP(简单对象访问协议)定义了一种非常强类型的消息传递框架,该框架严重依赖XML和架构。REST-代表状态转移-是一种架构样式,它利用了现有且被广泛采用的技术(特别是HTTP),并且不创建任何新标准。REST可以将数据结构化为XMLYAML或任何其他机器可读格式,但通常首选JSON

SOAPREST –都支持构建基于SOA的应用程序。从业务和体系结构的角度来看,使用哪种选择在很大程度上取决于实际需要什么。通过查看它们在某些环境中的优缺点,以及了解自己的项目范围,您可以做出最明智的决定。因此,让我们列出它们的主要区别,这将帮助您从两者中选择一个。

SOAPREST API的比较

底层协议

SOAP本身是用于开发基于SOAPAPI的协议(通过HTTP)。

REST几乎是HTTP的同义词,REST规范自始至终没有强制要求它。

资料格式

SOAP仅依靠XML来提供消息传递服务,在某些情况下,例如通过javascript访问Web服务,该消息传递会变得极其复杂。

REST可以使用逗号分隔值(CSV),JavaScript对象表示法(JSON)和Really Simple SyndicationRSS)中的数据。关键是,您可以以易于解析的形式,以应用程序所需的语言来获取所需的输出。

有状态

RESTful Web服务是完全无状态的。管理对话状态是客户自己的全部责任。服务器没有帮助您。

通常,SOAP Web服务是无状态的,但是您可以通过更改服务器上的代码轻松使SOAP API变为有状态

快取

REST通过HTTPGET方法提供了良好的缓存基础结构,从而使响应数据可以标记为可缓存或不可缓存。该ETag头是实现缓存提供你要计算的值应该是什么样一种廉价的方式一个很好的方式。

使用HTTP作为传输机制时,SOAP是通过HTTP POST请求发送的。由于HTTP POST是非幂等的,因此无法在HTTP级别上进行缓存。因此,应该使用Response Caching Optimization Module中提供的信息来缓存SOAP响应。

使用的HTTP动词

REST主要用于HTTP,它利用HTTP GETPOSTPUTDELETEPATCH方法进行不同的CRUD操作。

SOAP还定义了对HTTP协议的绑定。当绑定到HTTP时,所有SOAP请求都通过HTTP POST发送。

安全

REST基于HTTP –它本身是一个非常不安全的协议。它支持通过TLS的基本身份验证和通信加密。服务器上还应另外实施任何其他安全措施。

WS-SECURITYSOAP安全性进行了很好的标准化,WS-SECURITY具有很多功能,并且易于实现到应用程序代码中。

异步处理

创建/更新资源非常耗时时,可能需要异步请求处理。在这种情况下,REST建议返回HTTP响应代码,202 Accepted并发送队列的位置,在该位置上,任务完成状态将定期更新。REST获得了JAX-RS本身对异步API良好支持。

如果您的应用程序需要保证的可靠性和安全性,那么SOAP 1.2提供了其他标准来确保这种类型的操作。WSRM – WS-Reliable Messaging之类的东西

概要

总体而言,REST更易于开发,因为它利用了已经存在的Web,并且自由度受到限制(做出的选择更少,因此更简单)。SOAP提供了多种选择,并且开发难度也稍大一些,但是提供了更多的选择和工作范围。

 

猜你喜欢

转载自blog.csdn.net/allway2/article/details/109537931