我是apache olingo web服务的新手。在过去的两周里,我一直在为我的服务实施过滤和分页。我正在使用最新的olingo版本4.我谷歌并看了很多博客,但没有明确的解释。请帮我提供示例代码。对我来说,它会更加充实。
以下是我的情景,
我将现有Web服务中的数据作为XML获取,然后使用JAXB解析XML,使其成为olingo Web服务中的实体列表。
这里我如何应用过滤器。如果我的URL中有$ filter意味着它会抛出找不到页面的异常。如果我删除它意味着它将工作并给出完整的结果。
我的问题是如何在XML字符串中应用olingo过滤器 如何将它应用于我在方法中拥有它的实体列表中。 请给我一些示例代码。
我需要对我的响应JSON进行分页。我需要将JSON值限制为每页25个,并且还需要下一页URL(对于25到50)。 如何实现这一点。
我克服了很多博客,但没有为我工作。 这里 https://templth.wordpress.com/2015/04/03/handling-odata-queries-with-elasticsearch/
在这篇博客中,他们没有解释完整的代码。我的问题是,我从现有的Web服务获取数据作为XML字符串并解析它并具有实体列表。
我也参考了这个博客,
https://olingo.apache.org/doc/odata2/tutorials/Olingo_Tutorial_AdvancedRead_FilterVisitor.html
在这个博客中他们还讲述了如何构建查询,我的问题是如何在我的Web服务中从ODATA实现$ filter,$ select等以及如何从xml字符串或实体列表中过滤
请建议我提供示例代码。谢谢。
答案 0 :(得分:3)
Olingo团队提供了大量组织良好的帮助资源。可以通过以下说明找到示例项目: http://olingo.staging.apache.org/doc/odata4/tutorials/prerequisites/prerequisites.html#tutorial-sources 有关hte分页的完整教程可以在这里找到: https://olingo.apache.org/doc/odata4/tutorials/sqo_tcs/tutorial_sqo_tcs.html
我也可以为您提供示例代码。例如,如果谈论分页,在EntityCollectionProcessor
实现中,您只需阅读top并跳过参数,并在使用XML,JSON或其他任何内容生成对现有Web服务的查询时使用它们:
int skipNumber = 0;
SkipOption skipOption = uriInfo.getSkipOption();
if (skipOption != null) {
skipNumber = skipOption.getValue();
}
int topNumber = -1;
TopOption topOption = uriInfo.getTopOption();
if (topOption != null) {
topNumber = topOption.getValue();
}
EntityCollection responseEntityCollection = getDataFromService(edmEntitySet, skipNumber, topNumber);
此处getDataFromService
方法生成对您的服务的请求,传递top / skip参数并检索响应。不建议在OData服务端过滤结果集。您可以在上面提到的教程中找到一些额外的步骤。
过滤更复杂,但您可以从这里找到主要想法:
https://olingo.apache.org/doc/odata4/tutorials/sqo_f/tutorial_sqo_f.html