当返回数据量不足每页大小时即为末页,或据总记录数计算总页数动态获取
API接口分页与最后一页处理详解
分页原理基础
核心参数
参数名 | 说明 | 示例值 |
---|---|---|
totalCount | 数据总条目数 | 45 |
pageSize | 每页数据量 | 10 |
currentPage | 当前请求页码(从1开始) | 5 |
分页计算公式
# 总页数计算(向上取整) total_pages = (total_count + page_size 1) // page_size # 最后一页特征判断 is_last_page = current_page >= total_pages
最后一页判定方法
场景对比表
场景类型 | 判断条件 | 返回数据量 |
---|---|---|
数据刚好整除 | 45条数据/10=4.5页 → 总页数5 | 10 |
数据不能整除 | 43条数据/10=4.3页 → 总页数5 | 3 |
请求页码等于总页数 | currentPage=5 && total_pages=5 | ≤pageSize |
请求页码超过总页数 | currentPage=6 && total_pages=5 | ≤pageSize |
边界处理逻辑
- 动态计算:每次请求时根据
totalCount
重新计算totalPages
- 数据对齐:最后一页数据量可能小于
pageSize
- 异常处理:
- 当
totalCount=0
时返回空数组 - 当
pageSize=0
时抛出参数错误
- 当
典型实现示例
RESTful API参数规范
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
page | int | 否 | 当前页码(默认1) |
pageSize | int | 否 | 每页数量(默认10) |
响应数据结构
{ "data": [...], // 当前页数据数组 "pagination": { "currentPage": 5, // 实际返回页码 "totalPages": 5, // 总页数 "pageSize": 10, // 实际分页大小 "totalCount": 43 // 满足条件的总数据量 } }
常见问题与解答
Q1:如何动态调整每页显示数量?
A:
- 前端在请求时携带
pageSize
参数 - 后端验证取值范围(建议限制在1-100)
- 特殊处理极端值:
pageSize=0
→ 返回错误提示pageSize>max_limit
→ 自动降级为最大允许值
Q2:请求页码超过总页数会怎样?
A:
- 自动校正策略:
- 返回最后一页数据(
currentPage=totalPages
) - 同时返回实际页码字段修正结果
- 返回最后一页数据(
- 错误处理策略:
- 返回400错误(需明确接口文档约定)
- 包含错误信息:`”error”:”page number exceeds
到此,以上就是小编对于“api 接口分页 最后一页”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复