与SOAP不同,为什么REST没有WSDL

Vic*_*tor 18 rest soap wsdl web-services

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

Pra*_*een 20

有很多方法可以像WSDL for SOAP一样定义RESTful API:

您可以在我的博客文章中找到更多信息.


The*_*ook 15

REST真的只使用HTTP动词(GET,PUT,POST,DELETE上的资源,...).资源上的所有操作都应该以这种方式表示.POST当你无法以适合其他三种方式的方式表达你的业务逻辑时,它被用作一个捕获.这就是为什么REST服务实际上没有WSDL的原因,因为您在资源上只有4个方法.

但您仍然可以使用WSDL 2.0描述REST Web服务.

  • 由于使用标准HTTP谓词,REST服务不需要类似WSDL的建议是误导性的.实际情况是,一般情况下,您不能指望不同的REST实现以完全相同的方式使用HTTP,并且HTTP动词不会告诉您有关它们所依据的表示的任何信息.因此,对于任何给定的REST服务,存在关于如何使用它的巨大真空信息,让实现者开发一些用于描述它的带外方法,从"阅读我们的文档"到"浏览器浏览器"并弄清楚". (19认同)

Nab*_*.Z. 5

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

在许多参考资料中,您将看到REST和SOAP都被称为竞争对手。那是不对的。SOAP实际上是一种协议,而不是体系结构样式。可以与REST进行比较的是SOA和RPC。这三个都是Web服务样式的示例,每种样式都有自己的概念重点。RPC专注于操作,SOA围绕消息,而REST则围绕资源。(参考

因此,对于SOAP,编写了WSDL文档标准。但是对于REST,没有标准文档,但是有许多最佳实践,例如http://jsonapi.org