web-services - OData 和 REST Web 服务之间的区别

标签 web-services rest odata

OData 和有什么区别和 REST 式 Web 服务?

最佳答案

更新警告,既然 OData V4 可用,这个答案就已经非常过时了。

<小时/>

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

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

OData 服务的查询功能要求您根据响应中不可用或链接到的信息构建 URI。这就是 REST 人们所说的带外信息,并在客户端和服务器之间引入了隐藏的耦合。

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

不幸的是,Microsoft 认为不适合创建媒体类型来描述这些关键数据,因此任何 OData 客户端都必须对其正在对话的服务及其正在接收的数据做出一系列假设。

关于web-services - OData 和 REST Web 服务之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2458407/

相关文章:

javascript - 从 Javascript 并行使用多个 .NET Web 服务

java - 没有出现在 Jersey 2 上使用 swagger 和 grizzly 的列表

c# - 如何在 Web API 和 OData 中进行 PATCH

wcf - 如何实现自托管 WCF 数据服务 (http ://localhost:1234/myDataService. svc/...)

c# - TCP 连接阶段失败(从 JAVA 客户端调用 Web 服务到 C# 服务器)

web-services - 为我正在构建的新网站创建 API 时应该考虑哪些要点?

java - 在 cxf 中公开 json 数组时出现异常

rest - RESTfully 公开对资源的操作 - 重载 POST、PUT 和 Controller 资源

java - 休息 Web 服务 404 错误 - Tomcat Eclipse

wcf - 使用 Microsoft.Data.Services.Client.dll 而不是 System.Data.Services.Client.dll 会导致 Azure.StorageClient 出现问题