使Spring Boot REST API为外部API提供分页响应

问题描述 投票:0回答:1

我很久以来一直在寻找这种例子。我已经阅读了有关JPA分页示例的信息,但对我而言,这里的情况有所不同。我的项目需要创建SpringBoot REST API,该API使用REST模板在内部调用某些外部API(基于JSON)。现在,一旦收到响应,我的SpringBoot服务的响应应该作为首页而不是所有数据。这里还需要一些缓存机制。但是,对于任何对我的服务的新调用都不应再对外部服务进行调用,它应该来自缓存数据的响应,如下页。可以有某种机制作为数据的每日缓存,但是可以根据需要进行更改。我正在寻找解决方案的一个重要示例,例如如何在通过REST模板从外部API接收到的响应时,在Spring启动中执行基于页面的REST API响应。

java spring-boot caching pagination resttemplate
1个回答
0
投票

我建议在外部API上实现分页机制,并将页面详细信息作为查询参数的一部分传递。

@GetMapping("/user")
User getDetails(Pageable page){
...
} 

还通过外部api在响应标头中提供了链接标头,其中包含下一页,上一页,最后一页和首页的详细信息

Link: <https://abc/user?page=2&size=100>; rel="next",
 <https://abc/user?page=200&size=100>; rel="last",
 <https://abc/user?page=1&size=100>; rel="prev",
 <https://abc/user?page=1&size=100>; rel="first"

在数据库和数据访问层之间具有Redis缓存,但仅用于更新频率最小的高频读取查询。

© www.soinside.com 2019 - 2024. All rights reserved.