我看到了这两个链接:
1. SOAP vs REST
我明白了两者之间的区别。但我也听说过 WADL (https://wadl.java.net/),它与 REST 一起使用来提供契约(类似于 SOAP WSDL)
现在我有两个问题:
- REST 还遵循将通过 WADL 接收或传输的数据类型,现在其行为与 SOAP(使用 WSDL)非常相似。
- 如果 REST 与 WADL 和 SOAP 类似,那么该使用哪一个?
提前致谢。
最佳答案
SOAP(简单对象访问协议(protocol))
REST(表示状态转移)
SOAP 和 REST 不能直接比较,因为前者是协议(protocol),后者是架构风格。
SOAP 和 REST 之间的主要区别在于客户端和服务器实现之间的耦合程度。 SOAP 的工作方式类似于自定义桌面应用程序,与服务器紧密耦合。客户端和服务器之间有严格的契约,如果任何一方发生变化,一切似乎都会破裂。但是,REST 客户端更像是浏览器。它是一个通用客户端,知道如何使用协议(protocol)和标准化方法。如果做得好,耦合就会减少。 客户端应该在不事先了解 API(入口点和媒体类型除外)的情况下进入 REST。在 SOAP 中,客户端需要预先了解它将使用的所有内容。
REST 是独立于协议(protocol)的。它不与 HTTP 耦合。我们可以将它用于任何有标准化 URI 方案的协议(protocol)。但是,SOAP 本身就是一个协议(protocol)。
SOAP 仅支持 XML,但 REST 支持不同的格式,如文本、JSON、XML 等。我们知道,如果我们使用 JSON,那么我们在有效负载方面肯定会处于更好的位置。
SOAP 可以使用任何通用传输(HTTP/HTTPS)或 RPC(远程过程调用)。但是,REST 仅使用 HTTP/HTTPS
SOAP 无法使用 REST。但是,REST 可以使用类似于 HTTP 或任何其他协议(protocol)的 SOAP
SOAP 使用服务接口(interface)来公开业务逻辑。 REST 使用 URI 来公开业务逻辑
在 Java 中,JAX-WS 用于 SOAP Web 服务。但是,Java JAX-RS 适用于 REST Web 服务
SOAP定义了要严格遵循的标准。 REST 没有像 SOAP 那样定义任何标准
SOAP 比 REST 需要更多的带宽和资源。 REST 需要更少的带宽和资源。
SOAP 定义了它自己的安全性。 REST 从底层传输继承安全措施
与 REST 相比,如今 SOAP 不太受欢迎
关于java - REST WADL 与 SOAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27441363/