REST WADL与SOAP

时间:2014-12-12 10:14:21

标签: java web-services rest soap wsdl

我看到了这两个链接:

1。SOAP vs REST

  1. SOAP vs REST 2
  2. 我明白了两者之间的区别。但我也听说过WADL(https://wadl.java.net/),它与REST一起使用以提供契约(类似于SOAP WSDL)

    现在我有两个问题:

    1. REST也遵循WADL将要接收或传输的数据类型,现在它与SOAP(使用WSDL)非常相似。
    2. 如果使用WADL和SOAP的REST类似,使用哪一个?
    3. 提前致谢。

2 个答案:

答案 0 :(得分:1)

RESTful SOAP WebServices根本不同。

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

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

答案 1 :(得分: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现在不太受欢迎