路由器
直接路由
无需路由器,直接代码路由
shell
router.GET("/", func (c *gin.Context) {
c.JSON(200, gin.H{
"msg": "hello world!",
})
})
简易路由器
自定义路由文件,通过Group,简易分到各个模块
- 建立分路由 AdminRouter、ApiRouter
shell
func AdminRouterInit(r *gin.Engine) {
adminRouters := r.Group("/admin")
{
adminRouters.GET("/", func(c *gin.Context) {
c.JSON(200, "后台首页")
})
adminRouters.GET("/user", func(c *gin.Context) {
c.JSON(200, "用户信息")
})
}
}
shell
func ApiRouterInit(r *gin.Engine) {
apiRouters := r.Group("/api")
{
apiRouters.GET("/", func(c *gin.Context) {
c.JSON(200, "api首页")
})
apiRouters.GET("/userList", func(c *gin.Context) {
c.JSON(200, "api用户列表")
})
}
}
- 通过main导入
shell
func main() {
router := gin.Default() //默认引擎
// 导入路由器
routers.AdminRouterInit(router)
routers.ApiRouterInit(router)
router.Run(":8000") //启动服务
}
模块化路由器
具备控制器MVC理念,分模块建立控制器
- 建立多个控制器 IndexController、UserController
shell
package controller
import "github.com/gin-gonic/gin"
type IndexController struct {
}
func (this IndexController) Index(c *gin.Context) {
c.JSON(200, gin.H{
"msg": "新首页",
})
}
shell
package controller
import "github.com/gin-gonic/gin"
type UserController struct {
}
func (this UserController) Index(c *gin.Context) {
c.JSON(200, gin.H{
"msg": "用户新首页",
})
}
- 路由器配置控制器
shell
package controller
import "github.com/gin-gonic/gin"
// 分模块路由器
func ZRouterInit(r *gin.Engine) {
zRouter := r.Group("/controller")
{
zRouter.GET("/index", IndexController{}.Index)
zRouter.GET("/user", UserController{}.Index)
}
}
- main中导入路由器
shell
package main
import (
"github.com/gin-gonic/gin"
"main/internal/controller"
)
func main() {
router := gin.Default() //默认引擎
// 分模块路由器 导入
controller.ZRouterInit(router)
router.Run(":8000") //启动服务
}
启动,分别访问
shell
http://localhost:8000/controller/index
http://localhost:8000/controller/user
成功!