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  }