我不确定我要建议的方法是否是最好的方法,但这就是我的做法。由于您无法在精益客户端中引用 Spring 依赖对象,即 Pageable 而不向您的客户端添加 Spring 依赖项,您可能希望将 PageRequest 详细信息作为 HTTP GET 查询参数发送到您的 HTTP GET API,类似这样并循环您的与技术无关的 pagewrapper 结果如下所示。
API 签名
public PageWrapper findByCountry(..., int page, int size, String sortBy, String sortDirection);
PageWrapper:
List<T> items;
int currentPage;
int totalPages;
int totalItems;
boolean isLast;
API 代码:
Pageable nextPageable = new PageRequest(page, size, new Sort(sortBy));
Page<Person> personsPage = countryService.findByCountry(.., nextPageable);
if(null != personsPage){
PageWrapper<Person> pageWrapper = new PageWrapper<>();
pageWrapper.setItems(personsPage.getContent());
pageWrapper.setTotalPages(personsPage.getTotalPages());
pageWrapper.setTotalItems(personsPage.getTotalElements());
pageWrapper.setCurrentPage(personsPage.getNumber())
pageWrapper.setIsLast(personsPage.isLast());
return pageWrapper
}
客户端代码:
PageWrapper page = null;
do {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("page", index++);
paramMap.put("size", size);
paramMap.put("sortBy", "name");
page = (PageWrapper) httpClient.get(requestURI, paramMap);
process(page);
}while(!page.getIsLast())