SOAP Web服务和OData服务有什么区别?

6

我曾经在Java中构建过不同的SOAP Web服务(几年前..),也使用SAP Gateway在ABAP中构建了不同的OData服务。除了编程语言之外,主要区别是我会收到一个WSDL(可能是XML)来实现SOAP Web服务,而使用OData时可以选择XML或JSON输出。

两者都实现了REST范式,但通常更常见的是实现OData服务。我知道任何不同的软件都可以轻松地使用OData-但是两种服务之间有什么优缺点?我真的不太明白。


在这里找到了一些解释:(https://social.microsoft.com/Forums/en-US/895e1d14-6517-47a6-81d3-9cae86b17808/diffrence-between-soapwsdl-and-odatacsdl-services?forum=crm) - scher
1个回答

3
他们分享了一个模型,你可以问这个模型可以做什么,并且你可以使用它来交换数据。
区别在于:SOAP更加灵活。你可以建立任何模型,但是这也带来了一些复杂性。它允许服务器之间或者服务器和复杂客户端之间交换任何数据。这种灵活性使得SOAP难以在web浏览器中消费。
OData的理念是要严格限制你可以建立的模型,使其易于在JavaScript中消费:
基本上它会建立平面表格,并提供插入、更新、删除、列出等方法。你可以在OData服务中拥有多个这样的表格,并定义层次结构。
想象一下顾客和每个顾客订单的列表。
(OData能够做更多的事情,但我们暂时先保持简单)
所有这些都是为了便于JavaScript消费而设计的。
OData还标准化了一些对于web应用程序非常有用的东西。
现在看看SAP Fiori:OData的简单数据模型与这些简单的Fiori应用程序所显示的相匹配。
希望这能给你一个很好的概述:
SOAP用于数据交换,OData用于Web应用程序。

1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - The_Lord

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接