我試圖使用Olingo提供與OData服務(也寫在Olingo中)交互的客戶端。我正在嘗試發送PATCH。但是,標準驗證例程正在踢腳板,如果我不包含使用標準Olingo工具標記爲不可空的實體元素,則會出現錯誤。使用Olingo v2 Java作爲PATCH到OData v2服務的客戶端
在https://olingo.apache.org/doc/odata2/tutorials/OlingoV2BasicClientSample.html它說:
隨着HTTP MERGE/PATCH,也可以只發送更新的數據作爲POST身體和省略未改變的數據。但是這個(目前)在這個示例中沒有顯示。
不幸的是我不知道如何做到這一點,在那裏,似乎沒有是標誌的EntityProvider.writeEntry方法,這是一個補丁不是任何地方POST/PUT
EntityProviderWriteProperties properties = EntityProviderWriteProperties
.serviceRoot(rootUri).omitJsonWrapper(true).contentOnly(true)
.build();
// serialize data into ODataResponse object
ODataResponse response = EntityProvider.writeEntry(contentType,
entitySet, data, properties);
在我的代碼的這一點上,如果「數據」不包含我的非空字段的條目,我會得到一個錯誤。該響應還會爲不在我的「數據」中的實體的所有屬性返回空值。
我處理這個問題的方法是在「標準」代後刪除所有不在我的「數據」中的條目,但想象一下,即使我看不到它,也必須有更好的方法。有關如何處理這個問題的任何建議?
完美的工作,比我正在做的後JSON製作操作更好得多。謝謝。希望我能夠在Olingo doco中找到它。 –