新Sir

导航

 
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")



}

  

posted on 2021-02-26 09:49  新Sir  阅读(181)  评论(0编辑  收藏  举报