问题描述
我正在创建一个 API,我想在其中实现分页。
我需要获取所有反馈,结果大约为 5K。我正在尝试在 API 中实现分页。
我在我的项目中使用 jdbi v3。
我现在想到的解决方案之一是在 sql Query 中使用 LIMIT 和 OFFSET。
pageSize = 5
pageNo = 1.
pageNo = pageSize * (pageNo - 1)
SELECT * FROM Feedback where product_id in (2,3,4,...) order by id ASC LIMIT pageSize OFFSET pageNo.
我的 API 网址是“/product/Feedback?pageNo=1&pageSize=5。
有没有其他更有效的方法?
任何输入都会有所帮助。
谢谢。
解决方法
这种方法几乎没有潜在的缺点,但这实际上取决于您所在域的具体情况。以下是我推荐的几篇文章:
- https://coderwall.com/p/lkcaag/pagination-you-re-probably-doing-it-wrong
- https://slack.engineering/evolving-api-pagination-at-slack/
两者都涵盖了您作为示例使用的限制偏移方法。