return func(c *gin.Context) {
var user models.User
err := c.BindJSON(&user)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
validation_err := validate.Struct(user) // It will validate the request with User type struct
validationErr := validation_err.(validator.ValidationErrors)
if validationErr != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": validationErr.Error()})
return
}
c.JSON(http.StatusOK, user)
}
package models
type User struct {
FirstName string `json:"first_name" validate:"required, min=2, max=100"`
LastName string `json:"last_name" validate:"required, min=2, max=100"`
Email string `json:"email" validate:"email, required"`
Password string `json:"password" validate:"required, min=6"`
UserId string `json:"user_id" validate:"required"`
}
The server got hung up while using the validator to validate. Uncommenting the validation part helps to run the server again.