欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

gin系列- 路由及路由组

程序员文章站 2022-03-25 17:01:20
路由及路由组 没有路由 路由组 ......

路由及路由组

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

没有路由
gin系列- 路由及路由组
路由组
gin系列- 路由及路由组
gin系列- 路由及路由组