对于SOAP Web服务,有一个规范,所有请求/响应都必须遵循。该规范采用WSDL文档的形式。但是对于REST Web服务,为什么没有这样的规范或WSDL?因为我们没有遵循任何规范,这是否会使REST更容易受到运行时异常的影响?
REST实际上仅在资源上使用HTTP动词(GET
,PUT
,POST
,DELETE
等)。应该以这种方式表示对资源的所有操作。当您无法以适合其他三个方式的方式来表达业务逻辑时,POST
可以用作全部内容。这就是为什么实际上没有REST服务的WSDL的原因,因为您在资源上只有4种方法。
但是您仍然有the possibility to describe a REST web service with WSDL 2.0。
有很多方法来定义RESTful API,就像WSDL for SOAP:
您可以在my blog post上找到更多信息。
SOAP
是协议。REST
是一种体系结构。
[在许多参考资料中,您将看到REST和SOAP都被提到为竞争对手。那是不对的。 SOAP实际上是协议,而不是建筑风格。可以与REST进行比较的是SOA和RPC。这三种都是Web服务样式的示例,每种都有自己的样式概念上的重点。 RPC专注于运营,SOA专注于消息,以及围绕资源的REST。 (ref)
对于SOAP,写为WSDL document standards。但是对于REST,没有标准文档,但是有许多最佳实践,例如http://jsonapi.org