我正在尝试使用Olingo来提供与OData服务交互的客户端(也用Olingo编写)。我正在尝试发送PATCH。但是,标准验证例程正在进行中,如果我不包含使用标准Olingo工具标记为不可空的实体元素,则会出现错误。
在https://olingo.apache.org/doc/odata2/tutorials/OlingoV2BasicClientSample.html中说:
使用HTTP MERGE / PATCH,还可以仅将要更新的数据作为POST Body发送,并省略未更改的数据。但这(目前)未在此样本中显示。
不幸的是我不知道如何做到这一点,在那里,似乎没有任何标记到EntityProvider.writeEntry方法,它是PATCH而不是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);
在我的代码中,如果“data”不包含我的非可空字段的条目,则会出现错误。响应还为实体的所有属性返回空值,这些属性不在我的“数据”中。
我通过操纵响应来处理这个问题,以便在“标准”生成之后删除不在我的“数据”中的所有条目,但是想象一下,即使我看不到它,也必须有更好的方法。有关如何处理这个的任何建议?
答案 0 :(得分:3)
答案 1 :(得分:0)
来自客户端应用程序的内容类型/ json-patch + json?