【发布时间】:2013-04-01 04:31:29
【问题描述】:
对于 SOAP Web 服务,有一个所有请求/响应都必须遵循的规范。该规范采用 WSDL 文档的形式。但是对于 REST Web 服务,为什么没有这样的规范或 WSDL?这是否会使 REST 更容易受到运行时异常的影响,因为我们没有遵循任何规范?
【问题讨论】:
标签: web-services rest soap wsdl
对于 SOAP Web 服务,有一个所有请求/响应都必须遵循的规范。该规范采用 WSDL 文档的形式。但是对于 REST Web 服务,为什么没有这样的规范或 WSDL?这是否会使 REST 更容易受到运行时异常的影响,因为我们没有遵循任何规范?
【问题讨论】:
标签: web-services rest soap wsdl
REST 实际上只在资源上使用 HTTP 动词(GET、PUT、POST、DELETE,...)。对资源的所有操作都应该以这种方式表示。 POST 用于当您无法以适合其他三种方式表达您的业务逻辑时使用。这就是为什么 REST 服务没有真正的 WSDL,因为您在资源上只有 4 个方法。
但你还有the possibility to describe a REST web service with WSDL 2.0。
【讨论】:
有很多方法可以定义 RESTful API,就像 SOAP 的 WSDL:
您可以在my blog post 上找到更多信息。
【讨论】:
SOAP 是一种协议。REST 是一种架构。
在许多参考资料中,您会看到 REST 和 SOAP 都被称为 竞争对手。那不是真的。 SOAP 实际上是一个协议,而不是一个 建筑风格。 REST 可以与之比较的是 SOA 和 RPC。 这三个都是 Web 服务样式的示例,每个都有自己的 概念焦点。 RPC 专注于运维,SOA 专注于 消息,以及围绕资源的 REST。 (ref)
所以对于 SOAP,写了WSDL document standards。但是对于 REST 没有标准文档,但是有很多最佳实践比如http://jsonapi.org
【讨论】: