zoukankan      html  css  js  c++  java
  • go web gin 路由和路由组

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

      

  • 相关阅读:
    nginx升级总结,漏洞升级
    【BUG解决】在git上pull时提示You have not concluded your merge. (MERGE_HEAD exists)
    如何自签名把http网站变成https网站(https自签名方法)
    ifly
    Shell排序和二叉树排序
    C/C++复习笔记(2)
    C/C++复习笔记(1)
    C语言字符串操作
    python+flask
    C语言的一点复习
  • 原文地址:https://www.cnblogs.com/zexin88/p/14450688.html
Copyright © 2011-2022 走看看