介绍
本文介绍gin框架中如何绑定查询字符串或表单数据,并加以案例说明。
案例
源码:
package main
import (
"log"
"time"
"github.com/gin-gonic/gin"
)
type Person struct {
Name string `form:"name"`
Address string `form:"address"`
Birthday time.Time `form:"birthday" time_format:"2006-01-02" time_utc:"1"`
}
func main() {
route := gin.Default()
route.GET("/testing", startPage)
route.Run(":8080")
}
func startPage(c *gin.Context) {
var person Person
// 如果是 `GET` 请求,只使用 `Form` 绑定引擎(`query`)。
// 如果是 `POST` 请求,首先检查 `content-type` 是否为 `JSON` 或 `XML`,然后再使用 `Form`(`form-data`)。
// 查看更多:https://github.com/gin-gonic/gin/blob/master/binding/binding.go#L88
if c.ShouldBind(&person) == nil {
log.Println(person.Name)
log.Println(person.Address)
log.Println(person.Birthday)
}
c.String(200, "Success")
}
测试:
http://127.0.0.1:8080/testing?name=appleboy&address=xyz&birthday=1992-03-15
Success
终端:
2022/03/29 08:22:55 appleboy
2022/03/29 08:22:55 xyz
2022/03/29 08:22:55 1992-03-15 00:00:00 +0000 UTC
[GIN] 2022/03/29 - 08:22:55 | 200 | 141.836µs | 127.0.0.1 | GET "/testing?name=appleboy&address=xyz&birthday=1992-03-15"