你的假设有缺陷。
你说:
如果您要编写应用程序
并在两个 Web 之间进行选择
每个服务 API 都相似
除了一种是 SOAP 和另一种
是 REST,你会选择哪个
为什么?
说实话,SOAP API 很可能与 REST 系统完全不同,因此您无法在这个级别上进行真正的比较。
REST 是一种架构,而不是一种协议。 SOAP 是一种协议,但不是一种体系结构。尽管可能,但您不太可能在 SOAP 协议之上创建 REST 架构,因为 SOAP 有效负载不会为 REST 系统提供很多功能。
SOAP 系统更倾向于基于 RPC,而 REST 系统则基于资源。这两者在操作上和设计上的差异很大。
就在 HTTP 上使用 SOAP 与 XML/JSON(许多人错误地将其与 REST 混为一谈)而言,SOAP 系统的主要好处是可用于使与系统的接口和从系统发布更容易的工具。
如今,许多 IDE 和服务器都可以轻松发布和使用 SOAP Web 服务。
在 Java 中,发布 SOAP 接口可能比在文件中粘贴“@WebService”并部署它多一点。使用 Web 服务只不过是将 IDE 指向 WSDL(在发布 Web 服务时为您方便地创建),单击按钮,并让工具创建编组数据和与服务通信所需的代理。
基于 HTTP 的 XML/JSON 有一个好处,即您可能会跳过许多使 SOAP 自动化“容易”的样板。当然,Javascript 非常擅长使用 JSON,因此如果您的客户端空间包括 Web 浏览器,这可能是一个因素。
归根结底,如果您将浏览器与服务器对话,则基于 HTTP 的 XML/JSON 运行良好,实际的 REST 架构也可以运行良好。
如果您谈论的是服务器之间的 RPC,那么 SOAP 更容易实现,因为现在有可用的工具。