Struct
required
Struct的属性会有默认值,在某些情况下会引起required规则的失效。例如:
默认值
type User struct { Name string `v:"required"` Age uint `v:"required"` }
在该结构体校验中,Age属性的required校验将会失效,因为Age即便没有输入也会有默认值0。
Age
0
这里有三种解决方案:
*int
*float64
*g.Var
nil
required|min:1
Assoc
Server
API
XxxReq/XxxRes
请问struct校验支持嵌套吗?AppPageReq这个子struct里的EndTime,PageSize校验规则不生效。
type AppPageReq struct { EndTime string `json:"endTime" in:"query" d:"1" v:"required|date-format:Y-m-d H:i:s.u#资讯截止时间,格式2021-06-04 17:42:06.467" dc:"资讯截止时间"` PageSize int `json:"pageSize" in:"query" d:"10" v:"max:500#分页数量最大500条" dc:"分页数量,最大500"`}type NewsReq struct { g.Meta `path:"/get_important_news_list" method:"post" tags:"资讯" summary:"查询要闻列表"` UserId int `json:"userId" in:"query" d:"10" v:"min:1#用户id最小1" dc:"分页数量,最大500"` Ip string Params AppPageReq}
请问in:"header"为什么不生效,或者是 v:"required" in:"header"如何同时使用?
我是指这样:
type UserUpdateProfileReq struct { g.Meta `tag:"用户服务" summary:"更新头像、昵称" description:"用于更新用户信息:头像、昵称" mime:"multipart/form-data"` Authorization string `v:"required" in:"header" dc:"Authorization: Bearer eys...."` EncryptedData string `v:"required" dc:"用户信息加密字符串"` IV string `v:"required" dc:"用于解密用户加密信息"`}请求时,header中携带了Authorization字段,但参数校验依然会报缺少Authorization参数
郭强 刚接触这个框架, 大佬能否解答下呢?
验证没有返回出错的字段
试了一下,int类型的required也是可以生效了。没有传递id,会提示没有传递。
type RoleDeleteReq struct { g.Meta `path:"/role/delete" method:"delete" tags:"role" summary:"删除角色接口"` Id uint `v:"required" dc:"角色id"` }
{ "code": 51, "message": "The Id field is required", "data": null }
5 Comments
东方
请问struct校验支持嵌套吗?AppPageReq这个子struct里的EndTime,PageSize校验规则不生效。
仇小超
请问in:"header"为什么不生效,或者是 v:"required" in:"header"如何同时使用?
我是指这样:
仇小超
郭强 刚接触这个框架, 大佬能否解答下呢?
hanwei
验证没有返回出错的字段
coderon
试了一下,int类型的required也是可以生效了。没有传递id,会提示没有传递。