如何通过URL分页获取所有数据

时间:2019-04-10 04:04:47

标签: java api spring-boot pagination

我有一个问题,我想从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并对其进行迭代。

1 个答案:

答案 0 :(得分:0)

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

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

根据spring文档, 在CrudRepository之上,有一个PagingAndSortingRepository抽象,它添加了其他方法来简化对实体(doc link)

的分页访问。

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

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

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

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