在用 Python
或 Nodejs
做项目的时候我喜欢把项目的路由分文件存放在 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 := e.Group("/v1") { RouterUser(v1) } }
|
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
也就会变得非常的简洁