如何在Spring Boot中结合Spring Data分页与Squiggly实现部分响应?
我最近参考了支持部分响应的Squiggly示例,想要同时实现部分响应和分页功能,下面是我编写的返回酒店列表的核心代码,分享给大家参考:
仓库层(HotelRepository)
先在仓库层定义支持分页查询的方法:
Page<Hotel> findAll(Pageable pageable);
服务层接口(HotelService)
接着在服务层接口声明对应的方法:
Page<Hotel> findHotels(Pageable pageable);
服务层实现类(HotelServiceImpl)
然后实现服务层的分页查询逻辑,直接调用仓库层的分页方法即可:
@Override public Page<Hotel> findHotels(Pageable pageable) { return hotelRepository.findAll(pageable); }
控制器层(SampleController)
最后在控制器层结合Squiggly实现部分响应,同时处理分页参数:
@RestController @RequestMapping("/hotels") public class SampleController { @Autowired private HotelService hotelService; @GetMapping public Page<Hotel> getHotels( Pageable pageable, @RequestParam(value = "fields", required = false) String fields) { // 使用Squiggly根据传入的fields参数过滤响应字段 Squiggly.init().filter(Hotel.class, fields); return hotelService.findHotels(pageable); } }
功能说明
- 分页功能:通过Spring Data提供的
Pageable参数,自动解析请求中的分页参数(比如?page=0&size=10&sort=starLevel,desc),返回包含分页元数据的Page对象。 - 部分响应:借助Squiggly的字段过滤能力,客户端可以通过
fields参数指定需要返回的字段(比如?fields=id,name,starLevel),避免返回冗余数据,提升接口性能。
内容的提问来源于stack exchange,提问作者saji159
相关产品推荐
相关产品推荐

