一、什么是路由组
在前面中写入路由是只是单纯的这样使用:
func main() { router := gin.Default() // 路由 router.GET("/login", Login) router.POST("/do_login", DoLogin) router.GET("/user", User) router.POST("/do_user", DoUser) router.Run(":8080") }
但是如果路由比较多,有用户模块、商品模块等,是不是应该进行区分,另外就是随着新版本的发布,是不是应该也进行一下分组,这样更易于管理。
所以在路由组中可以这样使用:
package main import "github.com/gin-gonic/gin" func main() { router := gin.Default() // 简单的路由组:v1 v1 := router.Group("/v1") { v1.GET("/login", Login) v1.POST("/do_login", DoLogin) v1.GET("/user", User) v1.POST("/do_user", DoUser) } // 简单的路由组: v2 v2 := router.Group("/v2") { v2.GET("/login", Login) v2.POST("/do_login", DoLogin) v2.GET("/user", User) v2.POST("/do_user", DoUser) } router.Run(":8080") }
二、实例
1、项目目录结构
│ main.go
│
├─routers
│ routers.go
│
└─user
user.go
2、主文件
package main import ( "github.com/gin-gonic/gin" "go_tutorial/gin_frame/chapter04/demo/routers" ) func main() { router := gin.Default() routers.Routers(router) router.Run(":8080") }
3、总路由文件
package routers import ( "github.com/gin-gonic/gin" "go_tutorial/gin_frame/chapter04/demo/user" ) func Routers(router *gin.Engine) { user_router := router.Group("/v1") user.Routers(user_router) }
4、模块路由文件
package user import "github.com/gin-gonic/gin" func Routers(user_router *gin.RouterGroup) { { user_router.GET("/user", User) user_router.POST("/do_user", DoUser) } } func DoUser(context *gin.Context) { } func User(context *gin.Context) { }