You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:46:34