web-services - SOAP Web 服务和 OData 服务之间的具体区别是什么?

标签 web-services rest soap odata

我已经在 J​​ava 中构建了不同的 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/

相关文章:

java - 在java中使用Web服务时如何触发处理程序类

java - 如何在 JAX-WS 客户端中设置 SOAP header

c# - 我应该使用基于 REST 的服务通过 API 连接 C# 和 java(或其他技术)吗?

soap - PHP : What is fastest SOAP, file_get_contents 或 Curl?

java - JAX-RS Jersey 客户端 : Reading the Response with status code

json - 显示网络服务公开嵌套或平面列表?

java - 限制 Jackson REST API 的调用

ios - 如何在从 REST 服务加载元素时将元素动态添加到 UICollectionView (Swift)

java - 在现有 PHP 服务器上构建 REST Java API

javascript - 使用 JavaScript 切换 API