java - REST WADL 与 SOAP

标签 java web-services rest soap wsdl

我看到了这两个链接:

1. SOAP vs REST

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

    现在我有两个问题:

    1. REST 还遵循将通过 WADL 接收或传输的数据类型,现在其行为与 SOAP(使用 WSDL)非常相似。
    2. 如果 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/

    相关文章:

    Java - boolean 方法总是返回 false

    c# - 进行异步 Web 服务调用和在另一个线程中进行同步 Web 服务调用有什么区别?

    java - 未找到类定义 WSDL2JAVA 轴 1.4

    JavaScript/REST - 创建选项卡 div 元素后构建选项卡

    java - 在 App Engine 上使用 Jersey API 客户端

    java - 您链接同一对象的方法结果的设计模式的名称是什么?

    java - sonar用于定期分析java maven项目

    java - 通过矩阵变换在 Canvas 上绘制位图是否会影响位图?

    java - Web Services 输入和输出的结构

    spring - 休息服务通过 Spring