5

我是 apache olingo Web 服务的新手。在过去的两周里,我一直在为我的服务实施过滤器和分页。我使用的是最新的 olingo 版本 4。我用谷歌搜索它并查看了很多博客,但没有明确的解释。请帮助我提供示例代码。这对我来说会更有用。

以下是我的场景,

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

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

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

  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 字符串或实体列表中过滤

请向我推荐示例代码。谢谢。

4

1 回答 1

4

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实现中,您只需阅读顶部和跳过参数,并在使用 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方法向您的服务生成一个请求,传递顶部/跳过参数并检索响应。不建议在 OData 服务端过滤结果集。您可以在上述教程中找到一些额外的步骤。过滤更复杂,但您可以从这里找到主要思想: https ://olingo.apache.org/doc/odata4/tutorials/sqo_f/tutorial_sqo_f.html

于 2016-08-30T08:11:14.617 回答