子路由嵌套_Golang Gin 实战(七)| 分组路由源代码分析

本文介绍了Golang Gin框架中如何使用分组路由和子路由嵌套,通过示例展示了如何简化重复路由定义,并探讨了路由中间件的使用和分组路由的源代码实现,强调了其在版本管理和模块化中的作用。
摘要由CSDN通过智能技术生成

在我们开发定义路由的时候,可能会遇到很多部分重复的路由:

/admin/users
/admin/manager
/admin/photo

以上等等,这些路由最前面的部分/admin/是相同的,如果我们一个个写也没问题,但是不免会觉得琐碎、重复,无用劳动,那么有没有一种更好的办法来解决呢?Gin为我们提供的解决方案就是分组路由

分组路由

类似以上示例,就是分好组的路由,分组的原因有很多,比如基于模块化,把同样模块的放在一起,比如基于版本,把相同版本的API放一起,便于使用。在有的框架中,分组路由也被称之为命名空间。

假如我们现在要升级新版本APi,但是旧的版本我们又要保留以兼容老用户。那么我们使用Gin就可以这么做

func main() {
    
    r := gin.Default()

    //V1版本的API
    v1Group := r.Group("/v1")
    v1Group.GET("/users", func(c *gin.Context) {
        c.String(200, "/v1/users")
    })
    v1Group.GET("/products", func(c *gin.Context) {
        c.String(200, "/v1/products")
    })

    //V2版本的API
    v2Group := r.Group("/v2")
    v2Group.GET("/users", func(c *gin.Context) {
        c.String(200, "/v2/users")
    })
    v2Group.GET("/products", func(c *gin.Context) {
        c.String(200, "/v2/products")
    })

    r.Run(":8080")
}

只需要通过Group

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值