Web services OData和RESTWeb服务之间的区别

Web services OData和RESTWeb服务之间的区别,web-services,rest,odata,Web Services,Rest,Odata,与REST-ful web服务之间的区别是什么?OData协议构建在AtomPub协议之上。AtomPub协议是RESTAPI设计的最佳示例之一。因此,从某种意义上说,您是对的——OData只是另一个RESTAPI,每个OData实现都是一个REST-ful web服务 区别在于OData是一个特定的协议;REST是架构风格和设计模式。更新警告,现在OData V4可用,这个答案已经过时了 不久前我写了一篇关于这个主题的文章 正如Franci所说,OData基于Atom Pub。然而,他们在上

与REST-ful web服务之间的区别是什么?

OData协议构建在AtomPub协议之上。AtomPub协议是RESTAPI设计的最佳示例之一。因此,从某种意义上说,您是对的——OData只是另一个RESTAPI,每个OData实现都是一个REST-ful web服务


区别在于OData是一个特定的协议;REST是架构风格和设计模式。

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


不久前我写了一篇关于这个主题的文章

正如Franci所说,OData基于Atom Pub。然而,他们在上面分层了一些功能,不幸的是忽略了流程中的一些REST约束

OData服务的查询功能要求您基于响应中不可用或链接到的信息构造URI。它是其他人所称的带外信息,并在客户机和服务器之间引入了隐藏的耦合

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


不幸的是,微软认为不适合创建媒体类型来描述这些关键数据,因此任何OData客户机都必须对它正在与之交谈的服务和它正在接收的数据进行一系列假设。

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

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

如果你想很快总结一下,可以这样想:

  • 休息设计模式
  • OData-使能技术
来自OData:

OData协议是通过RESTful web服务与数据交互的应用程序级协议

OData协议不同于其他基于REST的web服务方法,因为它提供了一种统一的方法来描述数据和数据模型


2012年,OData实现了标准化,所以我将在这里添加一个更新

首先是定义:

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

ODataV4-是REST的一个具体实现,它以不同的格式定义消息的内容(目前我认为是AtomPub和JSON)。ODataV4遵循rest原则

例如,asp.net用户主要使用WebApi控制器将对象序列化/反序列化为JSON,并让javascript对其进行处理。Odata的要点是能够使用 现成的选项

OData(开放数据协议)是定义最佳 构建和使用RESTful API的实践。小田帮你 关注您的业务逻辑,同时构建RESTful API 不得不担心定义请求和响应的方法 标题、状态代码、HTTP方法、URL约定、媒体类型、, 有效负载格式和查询选项等。OData还指导您 跟踪更改,定义可重用过程的功能/操作 以及发送异步/批处理请求等。此外,OData 提供扩展设施,以满足客户的任何定制需求 RESTful API

OData RESTful API易于使用。OData元数据,一个 API数据模型的机器可读描述,支持 创建功能强大的通用客户端代理和工具。一些 它们可以帮助你在不知情的情况下与OData互动 关于协议。以下6个步骤演示了6个有趣的步骤 跨不同编程平台的OData消费场景。 但是如果你是一个非开发人员并且只想玩 OData,XOData是你最好的开始


有关更多详细信息,请参见

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

REST代表RE呈现式StateT转换,这是一种基于资源的体系结构风格。基于资源意味着数据和功能被视为资源


OData是一种基于web的协议,它定义了一组构建和使用RESTful web服务的最佳实践。OData是一种创建RESTful web服务的方法,因此是REST的实现。

@felickz对此表示抱歉。我有DNS问题。现在应该可以用了。或者当你的dns缓存过期时。实际上这已经过时了。OData的V3添加了“JSON Light”,它解决了这两个问题(实际上只是其中之一),即$metadata是您如何知道如何构建查询的,因此缺少的只是资源表示中指向$metadata的链接。这已经被添加,所以两个问题一下子就消失了。@Darreller你提到你的答案现在已经过时了。想添加您对该主题的最新看法吗?我仍然有兴趣知道OData 4和REST之间的区别。许多的thanks@Kurren它在我的待办事项列表中,但不幸的是,这是一个很长的列表。@DarrelMiller希望您能在不久的将来找到时间更新这篇文章,使其与OData V4同步。我可能在这一点上错了(刚刚开始学习OData),但从[protocol]的第3版开始[似乎还指定了一种JSON格式,您可以选择使用它。您可以吗