【问题标题】:Why doesn't REST utilize WSDLs, unlike SOAP?与 SOAP 不同,为什么 REST 不使用 WSDL?
【发布时间】:2013-04-01 04:31:29
【问题描述】:

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

【问题讨论】:

    标签: web-services rest soap wsdl


    【解决方案1】:

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

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

    【讨论】:

    • 由于使用标准 HTTP 动词,REST 服务不需要类似 WSDL 的建议具有误导性。现实情况是,一般来说,您根本不能指望不同的 REST 实现以相同的方式使用 HTTP,而且 HTTP 动词不会告诉您有关它们所作用的表示的任何信息。因此,对于任何给定的 REST 服务,关于如何使用它的信息都存在巨大的真空,让实现者开发一些带外方式来描述它,从“阅读我们的文档”到“用浏览器四处寻找”并弄清楚”。
    【解决方案2】:

    有很多方法可以定义 RESTful API,就像 SOAP 的 WSDL:

    您可以在my blog post 上找到更多信息。

    【讨论】:

      【解决方案3】:

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

      在许多参考资料中,您会看到 REST 和 SOAP 都被称为 竞争对手。那不是真的。 SOAP 实际上是一个协议,而不是一个 建筑风格。 REST 可以与之比较的是 SOA 和 RPC。 这三个都是 Web 服务样式的示例,每个都有自己的 概念焦点。 RPC 专注于运维,SOA 专注于 消息,以及围绕资源的 REST。 (ref)

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

      【讨论】:

        猜你喜欢
        • 2011-04-15
        • 1970-01-01
        • 2014-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-23
        • 1970-01-01
        相关资源
        最近更新 更多