• gin系列- 路由及路由组


    路由及路由组

    package main
    
    import (
    	"github.com/gin-gonic/gin"
    	"net/http"
    )
    
    func main() {
    	r := gin.Default()
    	//访问/index的GET请求会走这一条处理逻辑
    	//获取信息
    	r.GET("/index", func(c *gin.Context) {
    		c.JSON(http.StatusOK, gin.H{
    			"method": "GET",
    		})
    	})
    	//创建某个信息
    	r.POST("/index", func(c *gin.Context) {
    		c.JSON(http.StatusOK, gin.H{
    			"method": "POST",
    		})
    	})
    	//更新某个信息
    	r.PUT("/index", func(c *gin.Context) {
    		c.JSON(http.StatusOK, gin.H{
    			"method": "PUT",
    		})
    	})
    	//删除某个信息
    	r.DELETE("/index", func(c *gin.Context) {
    		c.JSON(http.StatusOK, gin.H{
    			"method": "DELETE",
    		})
    	})
    	//处理所有的请求方法
    	r.Any("/user", func(c *gin.Context) {
    		switch c.Request.Method{
    		case "GET" :
    			c.JSON(http.StatusOK, gin.H{"method": "GET"})
    		case http.MethodPost:
    			c.JSON(http.StatusOK, gin.H{"method":"POST"})
    			//......
    		}
    		c.JSON(http.StatusOK, gin.H{
    			"method": "Any",
    		})
    	})
    
    	//没有路由的页面
    	//为没有配置处理函数的路由添加处理程序,默认情况下它返回404代码
    	r.NoRoute(func(c *gin.Context) {
    		c.JSON(http.StatusNotFound, gin.H{
    			"msg" : "zisefeizhu",
    		})
    	})
    
    
    	//路由组  多用于区分不同的业务线或APP版本
    	//将拥有共同URL前缀的路由划分为一个路由组。习惯性一对{}包裹同组的路由,这只是为了看着清晰,你用不用{}包裹功能上没什么区别
    	//视频的首页和详细页
    	//r.GET("/video/index", func(c *gin.Context) {
    	//	c.JSON(http.StatusOK, gin.H{"msg":"/video/index"})
    	//})
    	//商城的首页和详细页
    	r.GET("/shop/index", func(c *gin.Context) {
    		c.JSON(http.StatusOK, gin.H{"msg":"/shop/index"})
    	})
    	//路由组
    	//把公用的前缀提取出来,创建一个路由组
    	videoGroup := r.Group("/video")
    	{
    		videoGroup.GET("/index", func(c *gin.Context) {
    			c.JSON(http.StatusOK, gin.H{"msg":"/video/index"})
    		})
    		videoGroup.GET("/xx", func(c *gin.Context) {
    			c.JSON(http.StatusOK, gin.H{"msg":"/video/xx"})
    		})
    		videoGroup.GET("/oo", func(c *gin.Context) {
    			c.JSON(http.StatusOK, gin.H{"msg":"/video/oo"})
    		})
    	}
    
    
    	r.Run(":9090")
    }
    

    没有路由

    路由组

  • 相关阅读:
    C#学习之自定义类实现foreach
    C#学习之用迭代器实现枚举器
    silverlight学习之获取照片的路径
    Java语言基础基本数据类型与运算符
    Java语言基础数组
    Asp.Net 学习资源列表
    测试第一篇BLOG文,高亮代码
    当屌丝想看《蜀山剑侠传》[python屏幕抓取]
    jQuery数据显示插件整合
    腾讯面试题:50个阶梯,你一次可以上一阶或两阶,走上去,共有多少种走法【原】
  • 原文地址:https://www.cnblogs.com/zisefeizhu/p/12739285.html
Copyright © 2020-2023  润新知