【问题标题】:REST WADL vs SOAPREST WADL 与 SOAP
【发布时间】:2014-12-12 10:14:20
【问题描述】:

我看到了这两个链接:

1.SOAP vs REST

  1. SOAP vs REST 2

我了解两者之间的区别。但我也听说过 WADL (https://wadl.java.net/),它与 ​​REST 一起用于提供合约(类似于 SOAP WSDL)

现在我有两个问题:

  1. REST 还遵循将要通过 WADL 接收或传输的数据类型,它现在的行为与 SOAP(使用 WSDL)非常相似。
  2. 如果带有 WADL 的 REST 和 SOAP 相似,使用哪一个?

提前致谢。

【问题讨论】:

  • “与 REST 一起使用以提供合约” 我从未见过在实际项目中使用 WADL 的示例。

标签: java web-services rest soap wsdl


【解决方案1】:

SOAP(简单对象访问协议)

REST(表示状态转移)

SOAP 和 REST 不能直接比较,因为前者是一种协议,而后者是一种架构风格。

SOAP 和 REST 的主要区别在于客户端和服务器实现之间的耦合程度。 SOAP 像一个定制的桌面应用程序一样工作,与服务器紧密耦合。客户端和服务器之间存在严格的合同,一切似乎都破裂了,任何一方都被改变了。但是,REST 客户端更像是一个浏览器。它是一个通用客户端,知道如何使用协议和标准化方法。如果做得好,耦合就会减少。 除了入口点和媒体类型外,客户端应该在不了解 API 的情况下进入 REST。在 SOAP 中,客户端需要事先了解它将使用的所有内容。

REST 独立于协议。它不与 HTTP 耦合。我们可以将它用于任何有标准化 URI 方案的协议。但是,SOAP 本身就是一个协议。

SOAP 只支持 XML,但 REST 支持不同的格式,如文本、JSON、XML 等。而且我们知道如果我们使用 JSON,那么在有效负载方面肯定会处于更好的位置。

SOAP 可以使用任何通用传输(HTTP / HTTPS)或 RPC(远程过程调用)。但是,REST 只使用 HTTP/HTTPS

SOAP 不能使用 REST。但是,REST 可以使用类似于 HTTP 的 SOAP 或任何其他协议

SOAP 使用服务接口来公开业务逻辑。 REST 使用 URI 公开业务逻辑

在 Java 中,JAX-WS 用于 SOAP Web 服务。但是,Java JAX-RS 用于 REST Web 服务

SOAP 定义了要严格遵循的标准。 REST 没有定义任何标准,例如 SOAP

SOAP 比 REST 需要更多的带宽和资源。 REST 需要更少的带宽和资源。

SOAP 定义了自己的安全性。 REST 从底层传输继承安全措施

与 REST 相比,如今 SOAP 不太受欢迎

【讨论】:

    【解决方案2】:

    RESTfulSOAP Web 服务有着根本的不同。

    简而言之 - SOAP 是一个典型的基于 RPC 的调用,您可以在其中将请求操作和详细信息隐藏在 SOAP 主体的 XML 文档中。而纯 RESTful webservie 完全依赖 HTTP 方法在服务器上执行操作。

    虽然 WADL 尚未被广泛采用,也不是真正的标准,但其背后的理论是简单地帮助工具生成一些代码,它旨在促进应用程序的重用,而不是在 Web 浏览器中的基本使用,即机器对- 机器通信(仍然使用 HTTP 协议)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多