您无法比较REST和SOAP。REST是一种体系结构样式,而SOAP是一种协议。
不幸的是,REST成为通俗地说是RESTful HTTP服务的同义词,这意味着使用HTTP作为(应用程序)协议实现REST样式的体系结构。
REST基于以下原则(约束和元素)(括在RESTful HTTP中的实现)[1]。
- 无状态(HTTP是无状态协议)
- 资源(由URI标识)
- 统一接口(HTTP方法)
- 表示形式(MIME-TYPE)
- HATEOS(超链接)
- 缓存(HTTP缓存)
另一方面,许多人通过说SOAP表示基于WSDL和SOAP的Web服务,这是W3C Web服务体系结构的一部分[2]。
- SOAP用作协议来交换信息(基本上是方法名称,参数,返回值,数据类型等)。
- WSDL一种描述Web服务的接口定义语言。
SOAP *的当前意义是什么?
SOAP是W3C标准,在W3C Web服务中用作信息交换格式。这些Web服务-尤其是在2008年(+-3年)大肆宣扬SOA(面向服务的体系结构)期间-并且(不幸的是)仍然主要在企业应用程序中实现。
这有几个原因。那时RESTful HTTP并不为人所知,并且被误解了。不幸的是,它仍然被误解了看看其他答案
“ [...] REST比SOAP [...]受到更多的限制。”
“ REST的主要目的是代表Internet [...]上的资源。”
另外,SOAP(和WSDL)是W3C Web服务协议栈的一部分,W3C Web服务协议栈为实现Web Service提供了更多标准。
人们仍在开发新的基于SOAP的API,还是现在已经成为传统?
因此,是的,仍然存在并且将来还会有使用SOAP的系统(至少在企业系统中,大多数是在幕后)。但是现在大多数人都在尝试做某种“ REST”。
如果我对SOAP和REST之间的区别有误,可以请我纠正我吗?
说REST是用于数据传输的更灵活的无状态架构,并不是一个很好的解释。简而言之,REST是一种具有特定约束和元素的体系结构样式。SOAP是一种信息交换协议。
就像我已经写过的,您无法比较它们。但是您可以将RESTful HTTP Web服务与SOAP / WSDL Web服务进行比较。