Gin 框架项目路由规划

在用 PythonNodejs 做项目的时候我喜欢把项目的路由分文件存放在 routers 文件夹下,然后在启动文件夹中加载,这样即简洁也好维护,试试如何在 Gin 中实现

main.go

1
2
3
r := gin.Default()
routers.Router(r) // 路由
r.Run(":8888")

3 行代码,Router 方法用来加载所有的路由,接下来看 Router 方法具体实现

routers/router.go

1
2
3
4
5
6
7
8
9
func Router(e *gin.Engine) {
// V1版本
v1 := e.Group("/v1")
{
RouterUser(v1)
// 其他模块路由
}
// V2版本
}

Router 方法主要是去把当前下的其他模块的路由加载进来,这里使用了路由组,如果不需要路由组的话去掉即可,接来下看看 RouterUser 方法具体实现

routers/user.go

1
2
3
4
func RouterUser(e *gin.RouterGroup) {
e.GET("/user/list", controllers.UserList)
e.POST("/user/add", controllers.UserAdd)
}

使用路由组接收的参数是 RouterGroup 不使用路由组接收的参数是 Engine,这里需要注意一下

目录

最后规划下来的目录如下:

1
2
3
4
5
6
7
8
9
10
11
.
├── README.md
├── app
│   └── controllers
│   └── user.go
├── go.mod
├── go.sum
├── main.go
└── routers
   ├── router.go
   └── user.go

这样规划的话,就只需要维护 router.go 和其他的对应模块自己的路由规则,main.go 也就会变得非常的简洁