在go中gin框架中,需要接收前端参数时,参数必填,我们一般添加binding:"required"`标签,这样前端参数不给时,gin框架会自动校验,给出error。 gin的参数校验是基于validator的,如果给了required标签,则不能传入零值,比如字符串的不能传入空串,int类型的不能传入0,bool类型的不能传入false。 有时候我们需...
gin 在程序启动就会默认初始化好 binding 相关的变量 // binding:L74var( JSON = jsonBinding{} XML = xmlBinding{} Form = formBinding{} Query = queryBinding{} FormPost = formPostBinding{} FormMultipart = formMultipartBinding{} ProtoBuf = protobufBinding{} MsgPack = msgpackBinding{} YAML = yam...
代码运行次数:0 复制 Cloud Studio代码运行 gopackagemainimport("net/http""unicode""github.com/gin-gonic/gin""github.com/go-playground/validator/v10")// User 结构体type User struct{Name string`json:"name" binding:"required" validate:"min=3,max=20"`Email string`json:"email" binding:"required...
带上username才不会报错,因为binding:"required" Post 如果是Post请求的话,我们都知道常规情况下,我们都是以json形式传参,那就不是拼在Url路径后面,所以使用BindQuery也就拿不到了,应该使用BindJSON 还记得之前我们在写Register方法的时候是怎么获取post提交的参数的吗?
使用时,结构体字段首字母必须大写。需要在要绑定的所有字段上,设置相应的tag。例如,使用 JSON 绑定时,设置字段标签为 json:"fieldname"。你也可以指定必须绑定的字段。如果一个字段的 tag 加上了 binding:"required",但绑定时是空值, Gin 会报错。Gin 使用 go-playground/validator.v8 进行验证。
package mainimport ("github.com/gin-gonic/gin" //引入框架"github.com/go-playground/validator/v10""net/http""reflect")type User struct {Name string `form:"name" binding:"required" msg:"name没有填写"`Age int `form:"age" binding:"min=18"`Gender int `form:"gender" binding:"len=1"`}...
import"github.com/gin-gonic/gin" typeUserstruct{ // edc24790-ad34-4666-a9d5-243cdb94071d IDstring`form:"id" binding:"required,uuid"` } funcmain() { r:=gin.Default() r.GET("user/",func(c*gin.Context) { varuserUser iferr:=c.ShouldBindQuery(&user);err!=nil{ ...
Namestring`json:"name" binding:"required,min=3,max=7"` } funcmain() { r:=gin.Default() r.POST("user",func(c*gin.Context) { varuserUser iferr:=c.ShouldBindJSON(&user);err!=nil{ c.JSON(200,gin.H{ "Code":200, "Msg":err.Error(), ...
你也可以指定必须绑定的字段。 如果一个字段的 tag 加上了binding:"required",但绑定时是空值, Gin 会报错。 // 绑定 JSONtypeLoginstruct{Userstring`form:"user" json:"user" xml:"user" binding:"required"`Passwordstring`form:"password" json:"password" xml:"password" binding:"required"`}funcmain(...
验证器 说明 示例-忽略字段 binding:"-"required必填字段 binding:“required”min最小长度 binding:“min=10”max最大长度 binding:“max=10”|或 binding:"rgb structonly 如果有嵌套,可以决定只验证结构体上的 binding:“structonly” omitempty 省略空,如果为空,则不会继续验证该字段上其他的规则,只有不为空...