Gin 提供了一个 Bind
方法和一个 ShouldBind
方法,可以将请求参数绑定到一个 struct 类型的变量上,并进行验证。
在控制器方法中,可以通过如下代码进行绑定和验证:
type User struct {
Name string `form:"name" binding:"required"`
Email string `form:"email" binding:"required,email"`
}
func CreateUser(c *gin.Context) {
var user User
if err := c.ShouldBind(&user); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
// TODO: 创建用户并返回结果
}
在上述代码中,User
是一个 struct 类型,其中使用了 form
标签指定了请求参数的名称,同时使用了 binding
标签来指定需要验证的格式和必填条件。在控制器方法中,使用 ShouldBind
方法将请求参数绑定到 user
变量上,并进行了错误检查。如果有任何错误,则返回一个带有错误信息的 JSON 响应。
除了 ShouldBind
方法,Gin 还提供了许多其他方法来支持不同类型的请求参数的绑定和验证,例如 BindJSON
、BindXML
、BindQuery
等等。可以根据具体情况选择不同的方法。