package main
import (
"context"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
)
type GetListReq struct {
g.Meta `path:"/" method:"get"`
Type string `v:"required#请选择内容模型" dc:"内容模型"`
Page int `v:"min:0#分页号码错误" dc:"分页号码" d:"1"`
Size int `v:"max:50#分页数量最大50条" dc:"分页数量,最大50" d:"10"`
Sort int `v:"in:0,1,2#排序类型不合法" dc:"排序类型(0:最新, 默认。1:活跃, 2:热度)"`
}
type GetListRes struct {
Items []Item `dc:"内容列表"`
}
type Item struct {
Id int64 `dc:"内容ID"`
Title string `dc:"内容标题"`
}
type Controller struct{}
func (Controller) GetList(ctx context.Context, req *GetListReq) (res *GetListRes, err error) {
g.Log().Info(ctx, req)
return
}
func main() {
s := g.Server()
s.Group("/content", func(group *ghttp.RouterGroup) {
group.Middleware(ghttp.MiddlewareHandlerResponse)
group.Bind(&Controller{})
})
s.SetPort(8199)
s.Run()
}
12 Comments
Eric chan
郭强
版本 1.16
问题
struct 里面 这样设置
PageSize int `p:"size" d:"10"`
时,有偶发几率出现参数获取不到的情况,然后自动使用默认值
改成
PageSize int `p:"size" d:10`
即可正常
而且必须是把 d:10 放在最后面,不然这个设置全都无法识别了
郭强
wiki
不接受问题反馈,请将代码提交到issue
以便确认。老板来一碗辣椒酱
标签中键对应的值都应该使用双引号包裹,如`id:"999"`,而使用`id:99`根本不起作用,我不明白你改完d为什么还起作用
Eric chan
请认真审题,不做双引号包裹是有原因的
老板来一碗辣椒酱
你好,我知道你说的前提,但是我感到疑惑的是Golang标签的标准写法问题,不讨论这里的具体问题
wangshuai
请问d标签支持函数方法吗?比如前端传了字符串,我想用strings.trimSpace在接收参数的时候就去掉首尾空格
xiaohuang
bool 类型默认值是不是有bug 默认值是true ,传了false 还是true
gf version: 2.6.x
当参数值为"false"正常, 参数值为false就不正常了
wln32
你的代码是什么
baijinjie
能否设置入参默认值为nil?
wln32
有什么意义呢?
ae86
定义成指针类型即可。但是你默认值nil实在想不到使用场景。
Daniel
果然很有帮助,改成指针类型就可以了。