zoukankan      html  css  js  c++  java
  • 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")
    }
    

    没有路由

    路由组

  • 相关阅读:
    CodeForces gym Nasta Rabbara lct
    bzoj 4025 二分图 lct
    CodeForces 785E Anton and Permutation
    bzoj 3669 魔法森林
    模板汇总——快读 fread
    bzoj2049 Cave 洞穴勘测 lct
    bzoj 2002 弹飞绵羊 lct裸题
    HDU 6394 Tree 分块 || lct
    HDU 6364 Ringland
    nyoj221_Tree_subsequent_traversal
  • 原文地址:https://www.cnblogs.com/zisefeizhu/p/12739285.html
Copyright © 2011-2022 走看看