REST和SOAP之间的区别

本文讨论了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)

Source: https://habr.com/ru/post/zh-CN483204/


All Articles