【发布时间】:2021-12-20 03:31:49
【问题描述】:
我有一个服务必须接收偏移格式的分页查询,接收offset 和limit 参数。例如,如果我收到offset=5&limit=10,我希望收到第 5-14 件商品。我可以对这些参数进行一些验证,例如为限制设置最大值。
我的数据源必须接收页码格式的分页请求,接收page_number和page_size参数。例如,如果我发送 page_number=0&page_size=20,我会收到 0-19 项。数据源的最大 page_size 为 100。
我需要能够获取我收到的偏移分页参数并使用它们来确定 page_number 和 page_size 参数的适当值,以便从包含所有项目的数据源返回一个范围我需要。可能会返回其他项目以填充范围的开始和/或结束,然后可以将其过滤掉以生成请求的范围。
如果可能,我应该只向数据源发出一个请求。或者,可以通过最小化从数据源请求的范围的大小来提高性能(即,获取 10 个项目来满足对 8 个项目的请求比请求 100 个项目更有效)。
这感觉实现起来应该相对简单,但我对简单数学解决方案的尝试并没有解决所有边缘情况,我对更强大解决方案的尝试已经开始进入更复杂的计算和计算领域迭代因素等。
有没有简单的方法来计算合适的值?
【问题讨论】:
标签: algorithm pagination