数据绑定
===
### 绑定 Url 查询参数(Only Bind Query String)
使用`c.ShouldBindQuery`方法
~~~
type User struct {
User string `form:"user"` // 注意tag要form
Password string `form:"password"`
}
func main() {
app := gin.Default()
app.GET("/test",getlog)
app.Run(":8085")
}
// 注意不推荐用git传输秘密这样是非常不安全的!
func getlog(ctx *gin.Context) {
var user User
if ctx.ShouldBindQuery(&user) == nil { // 绑定
log.Println(user.User)
fmt.Println(ctx.Query("user"))
log.Println(user.Password)
}
ctx.JSON(200,user)
}
~~~
### 绑定url查询参数和POST参数
使用`c.ShouldBind`方法,会根据`content-type`类型,优先匹配`JSON`或者`XML`,之后才是`Form`.
```
type User struct {
User string `form:"user"`
Password string `form:"password"`
}
func main() {
app := gin.Default()
app.GET("/test",getlog)
app.POST("/logo",logo)
app.Run(":8085")
}
func logo(ctx *gin.Context) {
user := &User{}
ctx.ShouldBind(user)
ctx.JSON(200,user)
}
```