package main
import (
"github.com/gin-gonic/gin"
"log"
"net/http"
)
type Info struct {
Name string `json:"name"` // 结构标签是的名称是 http 发送请求的时候的 key 的名字, 要和这个结构标签相同才能获取到
Age int64 `json:"age"`
}
func main() {
r := gin.Default()
// 路由组,把共同给路由前缀提取出来
// 用户路由组
usergroup := r.Group("/user")
usergroup.GET("/hello", func(c *gin.Context) {
c.JSON(http.StatusOK,gin.H{
"message":"hello",
})
})
// go gin 如何获取 http 请求 json 数据呢? 下面这个貌似 404, 这个是表单可以的吧。
usergroup.POST("/info", func(c *gin.Context) {
name := c.GetString("name")
age := c.GetString("age")
c.JSON(http.StatusOK,gin.H{
"Name":name,
"Age":age,
})
})
usergroup.POST("/test", func(c *gin.Context) {
var info Info
//err := c.ShouldBind(&info) 这个获取不到数据,请求是json数据,应该用 ShouldBindJSON ,换了下面的方法,ok l
err := c.ShouldBindJSON(&info)
if err !=nil {
c.JSON(http.StatusInternalServerError, gin.H{
"err": err.Error(),
})
} else {
log.Println("---info---:",info)
c.JSON(http.StatusOK,gin.H{
"Name":info.Name,
"Age":info.Age,
})
}
})
// 学生路由组
studentgroup := r.Group("/student")
studentgroup.GET("/info", func(c *gin.Context) {
c.JSON(http.StatusOK,gin.H{
"message":"ok",
})
})
r.Run(":8888")
}