Web Services OData和REST Web服务之间的差异

odopli94  于 2022-11-15  发布在  其他
关注(0)|答案(8)|浏览(202)

OData和REST风格的Web服务之间有什么区别?

olqngx59

olqngx591#

UPDATE警告,由于OData V4可用,此答案已非常过时。

我写了一篇关于这个主题的文章。
正如Franci所说,OData是基于Atom Pub的。然而,他们在上面分层了一些功能,不幸的是忽略了过程中的一些REST约束。
OData服务的查询功能要求您根据响应中不可用或链接到的信息来构造URI,这就是REST人员所称的带外信息,并在客户端和服务器之间引入了隐藏耦合。
引入的另一个耦合是通过使用EDMX元数据来定义条目内容中包含的属性。此元数据可以在一个名为$metadata的固定端点上发现。同样,客户端需要提前知道这一点,它无法被发现。
不幸的是,Microsoft认为创建媒体类型来描述这些关键数据并不合适,因此任何OData客户机都必须对它正在与之对话的服务和它正在接收的数据做出一系列假设。

l0oc07j2

l0oc07j22#

OData协议是建立在AtomPub协议之上的,AtomPub协议是REST API设计的最佳示例之一。因此,从某种意义上说,你是对的--OData只是另一个REST API,每个OData实现都是一个REST风格的Web服务。
不同之处在于OData是一个特定的协议; REST是架构风格和设计模式。

0aydgbwb

0aydgbwb3#

REST是一种通用的设计技术,用于描述如何访问Web服务。使用REST,您可以发出http请求来获取数据。如果您在浏览器中尝试使用REST,就像访问网站一样,只是返回的不是网页,而是XML。一些服务还将以JSON格式返回数据,这更易于与Javascript一起使用。
OData是一种通过REST公开数据的特定技术。
如果你想快速总结一下,可以这样想:

  • REST -设计模式
  • OData -使能技术
bxfogqkk

bxfogqkk4#

2012年,OData进行了标准化,所以我在这里添加一个更新。
首先定义:

REST-是一种如何通过HTTP发送消息的体系结构。
ODataV 4-是REST的一个具体实现,真正定义了不同格式的消息内容(目前我认为是AtomPub和JSON)。ODataV 4遵循REST原则。

例如,asp.net的用户大多使用WebApi控制器将对象序列化/反序列化为JSON,并让javascript对其进行处理。

euoag5mw

euoag5mw5#

从OData文档中:
OData协议是一种应用程序级协议,用于通过REST风格的Web服务与数据进行交互。
...
OData协议与其他基于REST的Web服务方法的不同之处在于,它提供了一种统一的方法来描述数据和数据模型。

tzdcorbm

tzdcorbm6#

O数据(开放数据协议)是一个OASIS标准,它定义了构建和使用RESTful API的最佳实践。OData帮助您在构建RESTful API时专注于业务逻辑,而不必担心定义请求和响应头、状态代码、HTTP方法、URL约定、媒体类型、负载格式和查询选项等的方法。OData还指导您跟踪更改,定义可重用过程的函数/操作,发送异步/批处理请求等。此外,OData还提供了扩展工具,以满足RESTful API的任何自定义需求。
ODataRESTfulAPI易于使用,OData元数据是API数据模型的机器可读描述,允许创建功能强大的通用客户端代理和工具。其中一些可以帮助您与OData交互,即使您对协议一无所知。以下6个步骤演示了跨不同编程平台使用OData的6个有趣场景。但是,如果您不是开发人员,并希望简单地玩OData,XOData是最好的开始。
欲了解更多详情,请访问http://www.odata.org/

bvn4nwqk

bvn4nwqk7#

ODATA是一种特殊的REST,我们可以在其中从URL统一查询数据。

swvgeqrz

swvgeqrz8#

REST代表REpresentationalStateTtransfer,这是一种基于资源的架构风格。基于资源意味着数据和功能被视为资源。
OData是一种基于Web的协议,它定义了一组用于构建和使用REST风格Web服务的最佳实践。OData是一种创建REST风格Web服务的方法,因此是REST的一种实现。

相关问题