路由分组
可以针对不同的功能模块对路由分组
- 使用
router.Group(name)
定义一个群组
Go
package main
import "github.com/gin-gonic/gin"
type SuccessRes struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data any `json:"data"`
}
func main() {
router := gin.Default()
// 定义user组路由
userRouter := router.Group("/user")
{
userRouter.GET("/info", func (ctx *gin.Context) {
ctx.JSON(200, SuccessRes{0, "成功", gin.H{"userName": "张三", "age": 22} })
})
userRouter.GET("/id", func (ctx *gin.Context) {
ctx.JSON(200, SuccessRes{0, "成功", 1 })
})
}
router.Run(":9100")
}
访问/user/info
、/user/id
- 路由嵌套
Go
package main
import "github.com/gin-gonic/gin"
type SuccessRes struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data any `json:"data"`
}
func main() {
router := gin.Default()
userRouter := router.Group("/user")
{
userRouter.GET("/info", func (ctx *gin.Context) {
ctx.JSON(200, SuccessRes{0, "成功", gin.H{"userName": "张三", "age": 22} })
})
userRouter.GET("/id", func (ctx *gin.Context) {
ctx.JSON(200, SuccessRes{0, "成功", 1 })
})
// /user 中再声明一个群组
userV1 := userRouter.Group("/v1")
{
userV1.GET("/name", func (ctx *gin.Context) {
ctx.JSON(200, SuccessRes{0, "成功", "张三" })
})
}
{
userV1.GET("/401", func (ctx *gin.Context) {
ctx.JSON(401, SuccessRes{-1, "无权限", nil})
})
}
}
router.Run(":9100")
}
访问/user/v1/name
、/user/v1/401