1 Star 2 Fork 0

Ostaer/gin-pagination

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
middleware.go 983 Bytes
一键复制 编辑 原始数据 按行查看 历史
liranbj02 提交于 2020-12-26 15:39 +08:00 . 初始化
package pagination
import (
"github.com/gin-gonic/gin"
)
//RequestQueryPrefix 参数前缀, 用于`PaginationQuery.SearchGroup`和其他参数区分
var RequestQueryPrefix = "search"
var PaginationQueryContextKey = "PaginationQuery"
//Pagination 实现这个接口,把前端传过来的参数解析成需要的`PaginationQuery`
//接口的`Parse`可以自定义足够复杂,相对应前端需要传的参数越多,该方法的解析越复杂
type Pagination interface {
Parser(c *gin.Context) *PaginationQuery
}
// PaginationParser 兼容gin中间件
// 从`gin.Context`中解析`PaginationQuery`
// url例子: page=1&&size=10&&search.1.key=age&&search.1.value=20&&search.2.key=gender&&search.2.value=0&&orderfield=age&&orderby=desc&&search.1.exactly=true&&search.2.exactly=false
func New(pagination Pagination) gin.HandlerFunc {
return func(c *gin.Context) {
paginationQuery := pagination.Parser(c)
c.Set(PaginationQueryContextKey, paginationQuery)
c.Next()
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/ostaer/gin-pagination.git
git@gitee.com:ostaer/gin-pagination.git
ostaer
gin-pagination
gin-pagination
de0db9399f23

搜索帮助