Olingo4是否向后兼容?

问题描述:

如果我在客户端(java)使用Olingo4库,它们是否与ODATA 2.x服务兼容?Olingo4是否向后兼容?

感谢

简短的回答是

长的答案是,Olingo或任何其他库只是OData协议的实现。该协议的第4版与以前的版本一样,已经破坏(读取不兼容)的变化。

您可以检查出this link获得的所有更改的列表,包括OData的不兼容的那些4.

现在是完全兼容的,既有的OData 2和4的OData,你可以阅读OData-MaxVersion头发送由客户端和基于它,你可以相应地发送响应。这将需要你在你的后端运行odata 2和odata 4实现(使用Olingo 2和Olingo 4或其他)。

就个人而言,如果您今天刚刚起步,并且没有强有力的理由来实现两个实施,那么OData v4服务不支持较低版本的客户端。

OData 4服务可能会对具有4XX级别错误的V1-V3客户端作出响应。

http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part1-protocol/odata-v4.0-errata02-os-part1-protocol-complete.html#_Toc406398370

它可以在一些琐碎的情况下工作,但即使是简单的count的选择存在很大的分歧为不同的OData版本:

  1. http://services.odata.org/V2/OData/OData.svc/Products/ $ inlinecount =所有页& $格式= JSON [V2]?
  2. http://services.odata.org/V4/OData/OData.svc/Products?$计数=真& $格式= JSON [V4]

Official OData page表明阿帕奇Olingoodata4j爽框架应具有的OData 2.我不Olingo的客户端工作了V2客户端实现,但我听说这是十分拙劣。我从odata4jJello Framework(快速研究)中找不到任何有趣的东西。

在最坏的情况下,您可以使用标准的HTTP客户端。最后,OData基于REST。