github.com/gogf/gf@v1.16.9/.example/net/ghttp/server/request/request_validation.go (about) 1 package main 2 3 import ( 4 "github.com/gogf/gf/frame/g" 5 "github.com/gogf/gf/net/ghttp" 6 "github.com/gogf/gf/util/gvalid" 7 ) 8 9 type User struct { 10 Uid int `gvalid:"uid@min:1"` 11 Name string `params:"username" gvalid:"username @required|length:6,30"` 12 Pass1 string `params:"password1" gvalid:"password1@required|password3"` 13 Pass2 string `params:"password2" gvalid:"password2@required|password3|same:password1#||两次密码不一致,请重新输入"` 14 } 15 16 func main() { 17 s := g.Server() 18 s.Group("/", func(rgroup *ghttp.RouterGroup) { 19 rgroup.ALL("/user", func(r *ghttp.Request) { 20 user := new(User) 21 if err := r.GetStruct(user); err != nil { 22 r.Response.WriteJsonExit(g.Map{ 23 "message": err, 24 "errcode": 1, 25 }) 26 } 27 if err := gvalid.CheckStruct(r.Context(), user, nil); err != nil { 28 r.Response.WriteJsonExit(g.Map{ 29 "message": err.Maps(), 30 "errcode": 1, 31 }) 32 } 33 r.Response.WriteJsonExit(g.Map{ 34 "message": "ok", 35 "errcode": 0, 36 }) 37 }) 38 }) 39 s.SetPort(8199) 40 s.Run() 41 }