首页 > 解决方案 > 如何通过url获取分页中的所有数据

问题描述

我有一个问题,我想从 API 迭代分页,我想制作导出功能但使用分页,我的问题是我对如何迭代它感到困惑,API 有分页。

private Document getProcessInstances(String status, int page, int size, String sort) {
    StringBuilder url = new StringBuilder();

    url.append(activitiqueryhost)
        .append("/v1/process-instances?status=")
        .append(status)
        .append("&page=")
        .append(page)
        .append("&size=")
        .append(size)
        .append("&sort=")
        .append(sort);
    System.out.println(" >>>>>>>>>> URL=" + url.toString());

    try {
        ResponseEntity<String> processinstancestring = this.get(url.toString());        
        System.out.println("processinstancestring=" + processinstancestring.getBody());
        Document processinstance = Document.parse(processinstancestring.getBody());
        System.out.println(">>>>> processinstance=" + processinstance.toJson());
        Document processinstancelist = (Document) processinstance.get("list");
        System.out.println(">>>>> list=" + processinstancelist.toJson());
    }

    return processinstancelist;
}

[已解决] 感谢您的问题,我已经解决了这个问题,所以我提出了一种从分页中获取 totalItems 的新方法,并对其进行迭代。

标签: javaapispring-bootpagination

解决方案


不确定,如果我理解正确的话。例如,如果您需要对从数据存储中获得的结果进行分页。您需要遵循以下 2 个步骤

  1. 获取指定请求页面信息的Pageable对象。
  2. 将 Pageable 对象作为方法参数传递给正确的存储库方法。

根据 spring 文档,在 CrudRepository 之上,有一个 PagingAndSortingRepository 抽象,它添加了额外的方法来简化对实体的分页访问(文档链接)

在您的 Controller 类中,您可以形成 Pageable 对象并将其传递给存储库。

此外,您可以 spring.data.web.pageable.default-page-size=5在 application.properties 中设置页面的默认大小。

您可以尝试在项目下面运行,看看是否有帮助

https://github.com/sidd081/spring-boot-sampless


推荐阅读