Skip to main content
Glama
param.go1.82 kB
package dao import ( "strconv" "github.com/gin-gonic/gin" "github.com/weibaohui/k8m/pkg/constants" ) // Params 用于处理分页和排序参数,以及上下文中的用户信息 type Params struct { OrderBy string // 排序字段 OrderDir string // 排序方向 Page int // 当前页 PerPage int // 每页数量 Queries map[string]any // 动态查询条件 UserName string // 登录用户名 } // BuildDefaultParams 从 gin.Context 中获取默认的分页和排序参数 func BuildDefaultParams() *Params { // 返回 Params 结构体 return &Params{ PerPage: 1000000, } } // BuildParams 从 gin.Context 中获取分页和排序参数 func BuildParams(c *gin.Context) *Params { // 获取排序字段,默认为 "id" orderBy := c.DefaultQuery("orderBy", "id") // 获取排序方向,默认为 "asc" orderDir := c.DefaultQuery("orderDir", "desc") // 获取当前页码,默认为 1 pageStr := c.DefaultQuery("page", "1") page, err := strconv.Atoi(pageStr) if err != nil || page < 1 { page = 1 // 确保页码大于 0 } // 获取每页显示条数,默认为 20 perPageStr := c.DefaultQuery("perPage", "20") perPage, err := strconv.Atoi(perPageStr) if err != nil || perPage < 1 { perPage = 15 // 确保每页数量大于 0 } // 构建动态查询条件 queries := make(map[string]any) // 遍历所有查询参数 for key, values := range c.Request.URL.Query() { // values 是 []string,我们只取第一个值 if len(values) > 0 { queries[key] = values[0] // 只存储第一个值 } } userName := c.GetString(constants.JwtUserName) // 返回 Params 结构体 return &Params{ OrderBy: orderBy, OrderDir: orderDir, Page: page, PerPage: perPage, Queries: queries, UserName: userName, } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/weibaohui/k8m'

If you have feedback or need assistance with the MCP directory API, please join our Discord server