Java 使用SpringRESTTemplate使用分页API

Java 使用SpringRESTTemplate使用分页API,java,spring,spring-boot,pagination,resttemplate,Java,Spring,Spring Boot,Pagination,Resttemplate,我想使用分页的API。该API由使用SpringBoot创建的端点提供。在寻找解决方案时,我在StackOverflow上找到了一篇文章 几乎每个答案都建议创建一个要解析的POJO。但由于这是一个标准问题,因此应该有一个由框架支持的标准解决方案。在上面提到的帖子中有一个作者的答案。他建议使用参数化TypeReference。为了我的目的,我把他的剪子剪了下来,并改变了类型T: restTemplate.exchange(targetUrl, HttpMethod.GET, requestEnti

我想使用分页的API。该API由使用SpringBoot创建的端点提供。在寻找解决方案时,我在StackOverflow上找到了一篇文章

几乎每个答案都建议创建一个要解析的POJO。但由于这是一个标准问题,因此应该有一个由框架支持的标准解决方案。在上面提到的帖子中有一个作者的答案。他建议使用
参数化TypeReference
。为了我的目的,我把他的剪子剪了下来,并改变了类型
T

restTemplate.exchange(targetUrl, HttpMethod.GET, requestEntity, new ParameterizedTypeReference<PagedResources<String>>() {});
这让我们了解了底层数据结构,如下所示

<200,
{
   "content":[
      "Data1",
      "Data2",
      "Data3"
   ],
   "pageable":{
      "sort":{
         "sorted":false,
         "unsorted":true,
         "empty":true
      },
      "offset":0,
      "pageSize":20,
      "pageNumber":0,
      "paged":true,
      "unpaged":false
   },
   "number":0,
   "sort":{
      "sorted":false,
      "unsorted":true,
      "empty":true
   },
   "size":20,
   "first":true,
   "numberOfElements":20,
   "totalPages":5,
   "totalElements":90,
   "last":false,
   "empty":false
},
[
   Cache-Control:"no-cache, no-store, max-age=0, must
-revalidate",
   Content-Type:"application/json;charset=UTF-8",
   Date:"Thu, 20 Jun 2019 17:38:18 GMT",
   Expires:"0",
   Pragma:"no-cache",
   Server:"nginx/1.15.10",
   X-Content-Type-Options:"nosniff"

<200,
{
   "content":[
      "Data1",
      "Data2",
      "Data3"
   ],
   "pageable":{
      "sort":{
         "sorted":false,
         "unsorted":true,
         "empty":true
      },
      "offset":0,
      "pageSize":20,
      "pageNumber":0,
      "paged":true,
      "unpaged":false
   },
   "number":0,
   "sort":{
      "sorted":false,
      "unsorted":true,
      "empty":true
   },
   "size":20,
   "first":true,
   "numberOfElements":20,
   "totalPages":5,
   "totalElements":90,
   "last":false,
   "empty":false
},
[
   Cache-Control:"no-cache, no-store, max-age=0, must
-revalidate",
   Content-Type:"application/json;charset=UTF-8",
   Date:"Thu, 20 Jun 2019 17:38:18 GMT",
   Expires:"0",
   Pragma:"no-cache",
   Server:"nginx/1.15.10",
   X-Content-Type-Options:"nosniff"