2013-04-09 51 views
15

对于SOAP Web服务,有一个规范,所有请求/响应必须遵循。本规范采用WSDL文档的形式。但是对于REST Web服务,为什么没有这样的规范或WSDL?这是否会使REST更容易受到运行时异常的影响,因为我们没有遵循任何规范?为什么REST没有与SOAP不同的WSDL

回答

12

REST真的只对资源使用HTTP动词(GETPUTPOSTDELETE,...)。资源上的所有操作都应该以这种方式表示。 POST被用作捕捉所有的东西,当你无法以适合其他三种方式来表达你的业务逻辑。这就是为什么REST服务没有真正的WSDL,因为在资源上只有4种方法。

但是你还有the possibility to describe a REST web service with WSDL 2.0

+14

由于使用标准HTTP动词,对于REST服务不需要类似WSDL的建议具有误导性。现实情况是,一般来说,你不能指望不同的REST实现以相同的方式使用HTTP,而HTTP动词不会告诉你任何有关它们所作用的表示的信息。因此,对于任何给定的REST服务,关于如何使用它的信息都存在巨大的真空,让实施者开发一些描述它的带外方式,从“阅读我们的文档”到“用浏览器浏览并找出它“。 – Hoobajoob 2014-04-16 17:53:13

2

SOAP是一个协议。
REST是一种架构。

在许多参考文献中,您将看到REST和SOAP都被提及为 的竞争对手。那是不正确的。 SOAP实际上是一个协议,而不是一个 架构风格。可以与REST进行比较的是SOA和RPC。 这三个都是Web服务样式的例子,每个样式都有自己的 概念焦点。 RPC专注于操作,围绕 消息的SOA,以及围绕资源的REST。 (ref

所以对于SOAP,写了WSDL document standards。但是对于REST,没有标准文档,但有许多最佳实践,如http://jsonapi.org