还有人不知道Gin框架自带参数校验吗?

func (uh *UserHandler) Signup(c *gin.Context) {
	type ReqSignup struct {
		Email           string `json:"email" binding:"required,email"`
		Password        string `json:"password" binding:"required,min=8,max=32"`
		ConfirmPassword string `json:"confirmPassword" binding:"required,eqfield=Password"`
	}

	var req ReqSignup
	if err := c.ShouldBindJSON(&req); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}
}

Gin也支持定制validator:

https://gin-gonic.com/docs/examples/custom-validators/

最后更新于