3模型绑定和模型验证
package main
import "github.com/gin-gonic/gin"
type PostArgs struct {
Name string `json:"name" uri:"name" form:"name""`
Age int `json:"age" uri:"age" form:"age"`
Sex bool `json:"sex" uri:"sex" form:"sex"`
}
func main() {
r := gin.Default()//中间件
r.POST("/testBindJson", func(c *gin.Context) { // 更新
var p PostArgs //实例化
erro :=c.ShouldBindJSON(&p) //指针p 给context
if erro != nil {
c.JSON(200,gin.H{
"msg":"fail",
"data":gin.H{},
})
}else{
c.JSON(200,gin.H{
"msg":"sucess",
"data":p,
})
}
})
//url形式 http://127.0.0.1:8090/testBindUrl/老王/20/true 需要在结构中绑定uri:字段
r.POST("/testBindUrl/:name/:age/:sex", func(c *gin.Context) { // 更新
var p PostArgs //实例化
erro :=c.ShouldBindUri(&p) //指针p 给context
if erro != nil {
c.JSON(200,gin.H{
"msg":"fail",
"data":gin.H{},
})
}else{
c.JSON(200,gin.H{
"msg":"sucess",
"data":p,
})
}
})
//query形式 http://127.0.0.1:8090/testBindQuery?name=老王&age=12&sex=true 需要在结构中绑定form:"字段"
r.POST("/testBindQuery", func(c *gin.Context) { // 更新
var p PostArgs //实例化
erro :=c.ShouldBindQuery(&p) //指针p 给context
if erro != nil {
c.JSON(200,gin.H{
"msg":"fail",
"data":gin.H{},
})
}else{
c.JSON(200,gin.H{
"msg":"sucess",
"data":p,
})
}
})
r.Run(":8090") // listen and serve on 0.0.0.0:8080 可以监控
}