我已经在 Java 中构建了不同的 SOAP 网络服务(几年前......),并在 abap 中使用 SAP 网关构建了不同的 OData 服务。主要区别(编程语言除外)是我收到带有 SOAP-webservice- 的 WSDL(可能是 XML)和 OData,我可以在 xml 或 json 输出之间进行选择。
两者都实现/实现了 REST-Paradigm,但主要是实现 OData-Service。我知道任何不同的软件都可以轻松使用 OData - 但是这两种服务之间的优缺点在哪里?我真的不明白。
最佳答案
他们分享说他们有一个模型,你可以问这个模型它可以做什么,你可以用它来交换数据。
区别:
SOAP 更加灵活。你可以建模任何东西。这带来了一些复杂性。它允许您在服务器之间或服务器与复杂客户端之间交换任何数据。
这种灵活性使得 SOAP 在 Web 浏览器中使用起来很复杂。
OData 背后的想法是严格限制您可以建模的内容,使其易于在 JavaScript 中使用:
基本上,它使用插入、更新、删除、列出的方法对平面表进行建模。
您可以在 OData 服务中拥有多个这些表,并且可以定义层次结构。
想想每个客户的客户和订单列表。
(OData 可以做得更多,但让我们保持简单)
所有这些都是以一种可以被 JavaScript 轻松使用的方式制作的。
OData 还标准化了一些对 Web 应用程序有用的东西。
现在看看 SAP Fiori:OData 的简单数据模型与那些简单的 Fiori 应用程序一次可以显示的内容相匹配。
希望这能给你一个很好的概述图:
SOAP 用于数据交换,OData 用于 Web 应用程序。
关于web-services - SOAP Web 服务和 OData 服务之间的具体区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38349035/