gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 20:18:27 26 4
gpt4 key购买 nike

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

以下是我的场景,

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

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

    我的问题是如何在 XML 字符串或如何将它应用到我在方法中拥有它的实体列表中。请给我一些示例代码的解释。

  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

在此博客中,他们还介绍了如何构建查询,我的问题是如何在我的网络服务中从 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 实现中,您只需读取顶部并跳过参数,并在使用 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

关于java - 如何在 apache olingo v4 web 服务中实现过滤和分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32044486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com