github.com/gogf/gf@v1.16.9/.example/net/ghttp/server/request/json-xml/test2.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 RegisterReq struct { 10 Name string `p:"username" v:"required|length:6,30#请输入账号|账号长度为:min到:max位"` 11 Pass string `p:"password1" v:"required|length:6,30#请输入密码|密码长度不够"` 12 Pass2 string `p:"password2" v:"required|length:6,30|same:password1#请确认密码|两次密码不一致"` 13 } 14 15 type RegisterRes struct { 16 Code int `json:"code"` 17 Error string `json:"error"` 18 Data interface{} `json:"data"` 19 } 20 21 func main() { 22 s := g.Server() 23 s.BindHandler("/register", func(r *ghttp.Request) { 24 var req *RegisterReq 25 //fmt.Println(r.GetBody()) 26 if err := r.Parse(&req); err != nil { 27 // Validation error. 28 if v, ok := err.(gvalid.Error); ok { 29 r.Response.WriteJsonExit(RegisterRes{ 30 Code: 1, 31 Error: v.FirstString(), 32 }) 33 } 34 // Other error. 35 r.Response.WriteJsonExit(RegisterRes{ 36 Code: 1, 37 Error: err.Error(), 38 }) 39 } 40 // ... 41 r.Response.WriteJsonExit(RegisterRes{ 42 Data: req, 43 }) 44 }) 45 s.SetPort(8199) 46 s.Run() 47 }