繁体   English   中英

如何在apache olingo v4 Web服务中实现过滤和分页

[英]How to implement filter and pagination in apache olingo v4 web service

我是apache olingo web服务的新手。 在过去的两周里,我一直在为我的服务实施过滤和分页。我正在使用最新的olingo版本4.我谷歌并看了很多博客,但没有明确的解释。 请帮我提供示例代码。我会更充分地使用它。

以下是我的情景,

  1. 我将现有Web服务中的数据作为XML获取,然后使用JAXB解析XML,使其成为olingo Web服务中的实体列表。

    我在这里如何应用过滤器。 如果我的URL中有$ filter意味着它会抛出找不到页面的异常。 如果我删除它意味着它将工作并给出完整的结果。

    我的问题是如何在XML字符串中应用olingo过滤器或如何将其应用于我在方法中拥有它的实体列表中。 请给我一些示例代码的explenation。

  2. 我需要对我的响应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字符串或实体列表中过滤

请建议我使用示例代码。谢谢。

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和skip参数,并在使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM