數據綁定
===
### 綁定 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)
}
```