本文讨论了REST和SOAP之间的基本区别的某些方面。
糟糕...实际上,将它们进行比较有点像将苹果与橙子进行比较,因为SOAP是基于XML的协议格式,而REST是一种体系结构方法。

你会学
- 什么是REST?
- 什么是SOAP?
- REST和SOAP有什么区别?
REST API
这是有关REST API的系列文章中的第二篇:
- REST API简介-RESTful Web服务
- REST和SOAP之间的区别
- REST API开发-什么是“合同优先”(合同优先)?
- REST API开发-什么是“代码优先”(代码优先)?
- REST API-什么是HATEOAS?
- REST API建议-Java和Spring中的Web服务设计示例
REST和SOAP
REST和SOAP并没有真正的可比性。 REST是一种建筑风格。 SOAP是一种消息传递格式。 让我们比较一下REST和SOAP样式的流行实现。
- RESTful实现示例:HTTP上的JSON
- SOAP实现示例:基于HTTP的SOAP之上的XML
在顶层,SOAP限制了消息的结构,而REST是一种架构方法,其重点是使用HTTP作为传输协议。
- SOAP的特殊性是一种数据交换格式。 对于SOAP,它始终是SOAP-XML,它是包含以下内容的XML:
-信封(envelope)-定义文档中使用的消息和名称空间的根元素,
-标头(header)-包含消息属性,例如:安全信息或网络路由信息,
-正文(body)-包含应用程序之间交换的消息,
-故障-一个可选元素,提供有关消息处理期间发生的错误的信息。 请求和响应都必须符合SOAP结构。 - REST的特殊性是使用HTTP作为传输协议。 它暗示了对HTTP提供的功能的最佳使用-请求方法,请求标头,响应,响应标头等。
讯息格式
- 在SOAP中,将SOAP XML格式用于请求和响应。
- REST中没有这种固定格式。 您可以基于XML,JSON或任何其他方便的格式交换消息。 JSON是最常用的格式。
服务定义
- SOAP使用WSDL (Web服务描述语言),这是一种基于XML的语言,用于描述和访问Web服务。
- REST没有标准的服务定义语言。 尽管WADL是最早提出的标准之一,但它并不是很受欢迎。 更为流行的是使用Swagger或Open API。
交通运输
SOAP对传输协议的类型没有任何限制。 您可以使用Web HTTP协议或MQ。
REST意味着对HTTP传输协议的最佳利用
易于实施
RESTFful Web服务通常比基于SOAP的Web服务更容易实现。
- REST通常使用JSON,JSON易于解析和处理。 除此之外,REST不需要服务定义即可提供Web服务。
- 但是,对于SOAP,您需要使用WSDL定义服务,并且在处理和分析SOAP-XML消息时会有很多开销。
还有关于这个主题的作者
视频 。
总结
在本文中,我们详细研究了REST和SOAP之间的区别。
补充阅读
2019年学习使用Java和Spring的RESTful Web服务的5门课程针对初学者的10个API测试技巧(SOAP和REST)