OData协议文档(http://www.odata.org/documentation)介绍了两个版本-2和3。
两个版本之间的核心区别是什么?
这两个版本都被现有的客户端库支持,还是版本2被认为是“遗留的”?
换句话说-版本2客户端与版本3兼容吗?
发布于 2013-02-06 22:24:51
这两个版本有很多不同之处。例如,OData v3添加了对操作、函数、集合值、派生类型的导航属性和流属性的支持。它还为JSON引入了一种全新的序列化格式("application/json“在两个版本中的含义完全不同)。
当OData客户端向服务器发出请求时,它可以(并且应该)通过MaxDataServiceVersion HTTP头指定它可以理解的最大协议版本。编写为只理解协议的v2的客户端将无法理解v3有效负载。
我不认为我会说v2是“遗留的”或不受支持的,但单个服务器可以选择是否支持只能理解v2 (或v1)的请求。我认为许多现有的客户端都支持v2和v3。我知道WCF数据服务客户端(桌面、windows phone、windows商店和silverlight)确实支持这两种方式。
发布于 2013-02-07 00:10:47
除了前面的回答之外,请注意,一些客户端工具可能仍然只支持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
发布于 2013-09-03 22:27:29
您可以在Open Data Protocol (OData) Specification的pdf中找到两个版本之间的所有差异的列表。具体来说,changelog位于"1.7版本控制和功能协商“部分。
https://stackoverflow.com/questions/14727332
复制相似问题