1、Url绑定
例如:localhost:8080/ping?a=123&b=456&c=789
通过c.Query()
函数获取参数
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
msg := c.Query("a") + c.Query("b") + c.Query("c")
c.JSON(200, msg)
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
或者使用ShouldBind
方式
package main
import "github.com/gin-gonic/gin"
type s struct {
A string `form:"a"`
B string `form:"b"`
C string `form:"c"`
}
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
var arg s
c.ShouldBind(&arg)
c.JSON(200, arg.A + arg.B + arg.C)
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
例如:localhost:8080/ping/123
通过c.Param
函数获取参数
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/ping/:name", func(c *gin.Context) {
c.JSON(200, c.Param("name"))
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
2、Post数据绑定
请求:curl -X POST 'http://localhost:8080/ping' -d '{"a":"123","b":"456","c":"789"}'
通过ShouldBindJSON
解析,如果是其他结构可使用类似函数例如xml
package main
import "github.com/gin-gonic/gin"
type s struct {
A string `form:"a"`
B string `form:"b"`
C string `form:"c"`
}
func main() {
r := gin.Default()
r.POST("/ping", func(c *gin.Context) {
var data s
c.ShouldBindJSON(&data)
c.JSON(200, data)
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}