路由参数
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// 解析路径参数
// $ curl http://localhost:8080/user/abel/boy
r.Any("/user/:name/:sex", func(c *gin.Context) {
c.JSON(200, gin.H{
"method": c.Request.Method,
"name": c.Param("name"),
"sex": c.Param("sex"),
"params": c.Params,
})
})
// 获取Query参数
// $ curl "http://localhost:8080/user?name=abel&sex=girl"
r.Any("/user", func(c *gin.Context) {
c.JSON(200, gin.H{
"method": c.Request.Method,
"name": c.Query("name"),
"sex": c.DefaultQuery("sex", "boy"), // 默认值
})
})
// 获取POST参数
// $ curl http://localhost:8080/user -X POST -d '{"name":"abel","sex":"girl"}'
r.POST("/form", func(c *gin.Context) {
c.JSON(200, gin.H{
"method": c.Request.Method,
"name": c.PostForm("name"),
"sex": c.DefaultPostForm("sex", "boy"), // 默认值
})
})
// 获取Map参数(字典参数)
// $ curl -g "http://localhost:8080/map?ids[Jack]=001&ids[Tom]=002" -X POST -d 'names[a]=Sam&names[b]=David'
r.POST("/map", func(c *gin.Context) {
c.JSON(200, gin.H{
"ids": c.QueryMap("ids"),
"names": c.PostFormMap("names"),
})
})
// 获取Array参数(字典参数)
// $ curl -g "http://localhost:8080/array?name=blog&name=wechat" -X POST -d 'names=Sam&names=David'
r.POST("/array", func(c *gin.Context) {
c.JSON(200, gin.H{
"name": c.QueryArray("name"),
"names": c.PostFormArray("names"),
})
})
err := r.Run() // 监听并在 0.0.0.0:8080 上启动服务
if err != nil {
fmt.Println("r.Run():", err.Error())
}
}