写点什么

Golang Gin 框架之分组路由(五)

作者:liuzhen007
  • 2021 年 11 月 23 日
  • 本文字数:1331 字

    阅读完需:约 4 分钟

Golang Gin 框架之分组路由(五)

目录


前言

正文

  • 分组路由

  • 编码简单,结构清晰

  • 扩展方便,便于管理

结尾


前言

Gin 是使用纯 Golang 语言实现的 HTTP Web 框架,Gin 的接口设计简洁,性能极高,现在被广泛使用。上一篇文章介绍了 Gin 的基本使用方式,今天我们详细看一看 Gin 在分组路由方面的内容。

正文

分组路由

说到分组路由,你一定会问为什么要搞分组路由?分组路由有什么优势?下面就详细介绍一下。编码简单,结构清晰使用分组路由可以为我们带来很多好处,比如编码会非常简单,结构也会非常清晰,下面看两段代码示例:使用路由分组之前:


func main() {  	router := gin.Default()		router.POST("/v1/login", loginEndpoint)		router.POST("/v1/submit", submitEndpoint)		router.POST("/v1/send", sendEndpoint)    router.POST("/v1/aaa", aaaaEndpoint)    router.POST("/v1/bbb", bbbbEndpoint)    router.POST("/v1/ccc", ccccEndpoint)    router.POST("/v1/ddd", ddddEndpoint)
router.Run(":8080")}
复制代码


上面的编码方式会产生非常多的路由前缀 V1,感觉很繁琐。使用路由分组之后:


func main() {  	router := gin.Default()    // 分组 v1    v1 := router.Group("/v1")    {      v1.POST("/login", loginEndpoint)      v1.POST("/submit", submitEndpoint)      v1.POST("/send", sendEndpoint)      v1.POST("/aaa", aaaaEndpoint)      v1.POST("/bbb", bbbbEndpoint)      v1.POST("/ccc", ccccEndpoint)      v1.POST("/ddd", ddddEndpoint)    }        router.Run(":8080")}
复制代码


此时,可以看到,相同的路由前缀 V1 被抽离出去,变成了一个分组。这样的代码看起来就非常简洁。

扩展方便,便于管理

使用分组路由可以让我们的代码便于扩展和管理,通过修改路由分组可以非常轻松扩展出另外一套 API 接口。比如,下面的代码就演示了从 v1 分组扩展到 v2 分组的方式,非常方便。



func main() { router := gin.Default() // 分组 v1 v1 := router.Group("/v1") { v1.POST("/login", loginEndpoint) v1.POST("/submit", submitEndpoint) v1.POST("/send", sendEndpoint) v1.POST("/aaa", aaaaEndpoint) v1.POST("/bbb", bbbbEndpoint) v1.POST("/ccc", ccccEndpoint) v1.POST("/ddd", ddddEndpoint) }
// 分组 v2 v2 := router.Group("/v2") { v2.POST("/login", loginEndpoint) v2.POST("/submit", submitEndpoint) v2.POST("/send", sendEndpoint) v1.POST("/aaa", aaaaEndpoint) v1.POST("/bbb", bbbbEndpoint) v1.POST("/ccc", ccccEndpoint) v1.POST("/ddd", ddddEndpoint) }
router.Run(":8080")}
复制代码


分组之后,我们可以非常清晰哪些代码逻辑属于分组 v1,哪些代码逻辑属于分组 v2。

结尾

在 Gin 中合理的使用分组路由可以让编码更加简单,结构更加清晰,同时,之后的代码扩展更加方便,便于管理。感兴趣的小伙伴们,不妨一试呦!


作者简介:大家好,我是 liuzhen007,是一位音视频技术爱好者,同时也是 CSDN 博客专家、华为云社区云享专家、签约作者,欢迎关注我分享更多干货!


发布于: 2 小时前阅读数: 7
用户头像

liuzhen007

关注

敲代码,搞开发。 2021.05.01 加入

本人深耕音视频技术,走全栈路线,前后端通吃,兼顾各端与流媒体服务器。 博客主页地址:https://liuzhen.blog.csdn.net 微信公众号:玩转音视频 欢迎交流学习!

评论

发布
暂无评论
Golang Gin 框架之分组路由(五)