OData版本2和3的区别

7

OData协议文档(http://www.odata.org/documentation)描述了两个版本 - 2和3。

这两个版本之间的核心区别是什么?

现有客户端库是否支持这两个版本,或者版本2被认为是“遗留”?

换句话说,版本2的客户端是否与版本3兼容?

3个回答

9
两个版本之间有很多不同之处。例如,OData v3 增加了对操作、函数、派生类型上的集合值、导航属性和流属性的支持。它还为 JSON 引入了全新的序列化格式(“application/json”在两个版本中意义完全不同)。
当 OData 客户端向服务器发出请求时,应该通过 MaxDataServiceVersion HTTP 标头指定它可以理解的最大协议版本。只能理解 v2 协议的客户端将无法理解 v3 负载。
我认为不能称 v2 为“遗留”或不受支持的,但各个服务器可以选择是否支持仅理解到 v2(或 v1)的请求。我知道 WCF 数据服务客户端(桌面、Windows Phone、Windows Store 和 Silverlight)都支持 v2 和 v3。

1

1
除了先前的答案之外,还要注意一些客户端工具可能仍然仅支持OData v2协议,因此如果您需要v3特定功能,则应确保您的客户端代码不受类似于无法处理数组类型的自动生成代理类的限制。
以下是一个示例,当服务器公开v3功能时,由于Visual Studio WCF数据服务客户端代理生成器仅支持v2,因此无法使用它们:

http://bloggingabout.net/blogs/vagif/archive/2012/12/16/using-odata-protocol-v3-with-mongodata-odata-provider.aspx


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