2017-08-10 113 views

回答

1

簡短的回答是

長的答案是,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

1

它可以在一些瑣碎的情況下工作,但即使是簡單的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。