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  }