14.10. 验证分页请求
说明
目前我们的分页请求中,允许用户请求这些参数:
- page=3 —— 请求第几页内容
- sort=id —— 排序字段和 order 字段配合使用
- order=asc —— 排序规则,asc 是正序,desc 是倒序
- per_page=10 —— 每一页多少内容
这些参数,除了 page 参数以外,其他几个参数都需要做请求验证。
规则如下:
- sort —— 设置白名单,例如说只允许 id 或者 updated_at 来做排序;
- order —— 设置白名单,排序规则一般就是正序和倒序;
- per_page —— 设置区间,少于 2 就没有分页的必要,而大于 100 请求太大,也太消耗服务器资源,故控制在 100 以内。
下面开始开发分页请求验证。
1. 请求验证
我们创建一个通用的 PaginationRequest 过滤规则,大部分情况下其他『列表』的API 都能使用。如果发现不适用,再创建专属的分页请求验证规则也可。