如果我在客户端(java)使用Olingo4库,它们是否与ODATA2.x服务兼容?
谢谢
发布于 2017-08-20 12:57:10
简单的回答是no。
很长的答案是,Olingo或任何其他库只是OData协议的一个实现。与以前的版本相比,协议的第4版发生了中断(读取不兼容)的更改。
您可以签出此链接以获得所有更改的列表,包括OData 4中不兼容的更改。
现在,为了与OData 2和OData 4完全兼容,您可以读取客户端发送的OData-MaxVersion头,并在此基础上发送响应accordingly.This,需要在后端运行odata 2和odata 4实现(使用Olingo 2和Olingo 4或其他东西)。
就个人而言,如果您今天就要开始工作,而且没有充分的理由要有两个实现,那么OData v4服务支持较低版本的客户端并不是必须的。
OData 4服务可能会以4xx级错误响应V1-V3客户端。
Toc406398370
发布于 2017-08-12 19:04:10
它可以在一些简单的场景中工作,但是即使是一个简单的count选项对于不同的OData版本也有很大的不同:
官方OData页面建议Apache、odata4j和Jello框架应该有OData 2的客户端实现,我没有使用Olingo的v2客户端,但我听说它很差。我在odata4j或Jello (快速研究)中找不到任何有趣的东西。
在最坏的情况下,您可以使用标准的HTTP客户端。最后,OData是基于REST的。
https://stackoverflow.com/questions/45624570
复制相似问题