Go項(xiàng)目實(shí)戰(zhàn)-API路由的分模塊管理
隨著項(xiàng)目開發(fā)的迭代,我們寫的接口往往會(huì)越來(lái)越多,如果都把API的路由寫到一個(gè)文件里,那么整個(gè)路由文件就會(huì)變得又亂又長(zhǎng),所以我們最好在項(xiàng)目開始階段就給路由的分模塊管理做好規(guī)劃。
今天這個(gè)文章給大家介紹一下Web項(xiàng)目API路由的分模塊管理,我們的項(xiàng)目使用的是Gin框架,但基本上所有的Web框架都能按照這個(gè)方式來(lái)分模塊管理API接口的路由。
圖片
一些路由管理混亂的例子
首先,我先給大家看一個(gè)曾經(jīng)維護(hù)過(guò)的項(xiàng)目的路由文件 router.go, 這個(gè)項(xiàng)目用的也是Gin框架,整個(gè)文件里500多行全是API接口的路由。
你說(shuō)這么寫不好維護(hù)吧,全項(xiàng)目的路由都在這里不用其他地方找,按能用就行的標(biāo)準(zhǔn),確實(shí)是能用。
而且Gin的官方文檔里在路由這塊的例子確實(shí)也是這么寫的。
// Gin 官方文檔示例
func main() {
router := gin.Default()
// 簡(jiǎn)單的路由組: v1
v1 := router.Group("/v1")
{
v1.POST("/login", loginEndpoint)
v1.POST("/submit", submitEndpoint)
v1.POST("/read", readEndpoint)
}
// 簡(jiǎn)單的路由組: v2
v2 := router.Group("/v2")
{
v2.POST("/login", loginEndpoint)
v2.POST("/submit", submitEndpoint)
v2.POST("/read", readEndpoint)
}
router.Run(":8080")
}
隨著項(xiàng)目開發(fā)的迭代,我們寫的接口往往會(huì)越來(lái)越多,如果還按上面這樣把API的路由寫到一個(gè)文件里,那么整個(gè)路由文件就會(huì)變得像上面那個(gè)例子一樣,變得又亂又長(zhǎng)。