0
点赞
收藏
分享

微信扫一扫

gin Validator 简单的例子

奋斗De奶爸 2022-03-15 阅读 44

routes/route.go

package routes

import (
	"fmt"
	"gin/app/requests"
	"net/http"

	"github.com/gin-gonic/gin"
)

func RegisterAPIRoutes(r *gin.Engine) {
	v1 := r.Group("/v1")

	v1.GET("hello", func(c *gin.Context) {
		fmt.Println("helloword")
	})

	v1.POST("post", func(c *gin.Context) {
		request := requests.Params{}//获取结构体里的参数实例
		requestResult := requests.Validator(&request, c)//验证
		if requestResult != nil {
			c.JSON(http.StatusOK, gin.H{
				"msg": requestResult.Error(),
			})
			return
		}
		c.JSON(http.StatusOK, "succes")
	})
}

requests/test_request.go

package requests

import (
	"github.com/gin-gonic/gin"
)

type Params struct {
	Age        uint8  `json:"age" binding:"gte=1,lte=130"`
	Name       string `json:"name" binding:"required"`
	Email      string `json:"email" binding:"required,email"`
	Password   string `json:"password" binding:"required"`
	RePassword string `json:"re_password" binding:"required,eqfield=Password"`
}

func Validator(params interface{}, c *gin.Context) (err error) {
	return c.ShouldBind(&params)
}

举报

相关推荐

0 条评论