当前位置:  开发笔记 > 编程语言 > 正文

OData和REST Web服务之间的区别

如何解决《OData和RESTWeb服务之间的区别》经验,为你挑选了5个好方法。

在研究一些Web服务时,我遇到了微软称之为OData的这种"新"技术.通过阅读他们在OData中的描述,我很难区分OData和REST-ful Web服务.有人可以帮我理解差异吗?



1> Darrel Mille..:

更新 警告,现在OData V4可用,这个答案已经过时了.


我刚才在这里写了一篇关于这个主题的帖子.

正如Franci所说,OData基于Atom Pub.但是,他们在顶部分层了一些功能,遗憾的是忽略了流程中的一些REST约束.

OData服务的查询功能要求您根据响应中不可用或链接的信息构造URI.这是REST人们称之为带外信息并引入客户端和服务器之间隐藏耦合的内容.

引入的另一种耦合是通过使用EDMX元数据来定义条目内容中包含的属性.可以在名为$ metadata的固定端点上发现此元数据.同样,客户需要提前知道,无法发现.

遗憾的是,微软认为不适合创建媒体类型来描述这些关键数据,因此任何OData客户端都必须对它正在与之交谈的服务及其接收的数据做出一系列假设.


@DarrelMiller你提到你的答案现在已经过时了.关注添加您对该主题的看法的更新?我仍然有兴趣了解OData 4和REST之间的区别.非常感谢
实际上这个*已经过时了.OData的V3添加了"JSON Light",它解决了这两个问题(实际上只是一个),即$ metadata是你知道构建查询的方式,所以缺少的只是资源表示中$ metadata的链接.这已被添加,因此这两个问题一下子就消失了.
@Kurren这是我的待办事项清单,但不幸的是它是一个很长的清单.
@DarrelMiller希望您能尽快找到一些时间来更新帖子,以便与OData V4保持同步.

2> Franci Penov..:

OData协议建立在AtomPub协议之上.AtomPub协议是REST API设计的最佳示例之一.所以,从某种意义上说,你是对的 - OData只是另一个REST API,每个OData实现都是一个REST-ful Web服务.

不同之处在于OData是一种特定的协议; REST是架构风格和设计模式.



3> Rush Frisby..:

REST是一种通用设计技术,用于描述如何访问Web服务.使用REST,您可以发出http请求以获取数据.如果你在浏览器中尝试它,就像去一个网站,除了返回一个网页,你会得到回来的XML.某些服务还将返回JSON格式的数据,这些数据更易于使用Javascript.

OData是一种通过REST公开数据的特定技术.

如果你想快速总结一下,可以把它想象成:

REST - 设计模式

OData - 支持技术



4> tatigo..:

2012年OData经历了标准化,所以我只是在这里添加一个更新.

首先是定义:

REST - 是一种如何通过HTTP发送消息的体系结构.

OData V4 - 是REST的一个特定实现,它真正定义了不同格式的消息内容(目前我认为是AtomPub和JSON).ODataV4遵循休息原则.

例如,asp.net人员将主要使用WebApi控制器将对象序列化/反序列化为JSON,并让javascript对其执行某些操作.Odata的观点是能够通过开箱即用的选项直接从URL查询.



5> mcanti..:

从OData 文档:

OData协议是一种应用程序级协议,用于通过RESTful Web服务与数据交互.

...

OData协议与其他基于REST的Web服务方法的不同之处在于它提供了一种统一的方式来描述数据和数据模型.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有