人生苦短,我用 Golang--Gin 框架(三-
“ 前面我們基本瞭解了 gin 框架的路由建立和獲取用戶參數,今天我們來看下怎麼拆分路由**”**
前面的文章中,我們都只是建立了一個 "\hello" 的路由,那隨着我們需求的增多,總不能在一個文件中,寫一大串代碼吧。有沒有什麼好的辦法呢?
今天就讓我們來看下 gin 框架的路由拆分。
因爲我也是初學者,所以我的拆分方法不一定是最好的,大家可以參考並選擇性優化。
首先,我們先在項目路徑下新建一個 router 的包,然後我們計劃把所有路由信息都放在這個包下。
比如,我們現在有以下幾個路由,用戶的、文件的等等。
那麼,我們就創建一個 user.go、attach.go,然後將所有的路由信息都放在這兩個文件中去。我們先以 user.go 爲例,來看一下。
package router
import (
"demo/src/main/cache"
"demo/src/main/config"
"demo/src/main/service"
"demo/src/main/structs"
"demo/src/main/util"
"encoding/base64"
"github.com/gin-gonic/gin"
"strconv"
"strings"
)
func LoadUser(e *gin.Engine) {
u := e.Group("/user")
{
l := u.Group("/login")
{
l.POST("/enterLogin", loginHandler)
l.POST("/refresh", refreshHandler)
l.POST("/exit", exitHandler)
}
r := u.Group("/register")
{
r.POST("/getRandCode", regRandCodeHandler)
}
}
}
func loginRandCodeHandler(c *gin.Context) {
}
func loginHandler(c *gin.Context) {
}
func refreshHandler(c *gin.Context) {
}
func exitHandler(c *gin.Context) {
}
func regRandCodeHandler(c *gin.Context) {
}
func regFirstHandler(c *gin.Context) {
}
上面的代碼中總共定義了 4 個路由,並按照業務邏輯進行了拆分。其中的核心是 LoadUser() 這個方法,在這裏面我們用 Group() 方法對路由進行了簡單拆分。
那麼現在我們怎麼使用這個方法呢?
package main
import (
"demo/src/main/router"
"github.com/gin-gonic/gin"
"io"
"os"
)
func main() {
}
func init() {
gin.DisableConsoleColor()
f, _ := os.Create("go.log")
gin.DefaultWriter = io.MultiWriter(f, os.Stdout)
r := gin.New()
r.Use(gin.Logger())
// 這裏我們調用剛纔的LoadUser()方法
router.LoadUser(r)
_ = r.Run(":81")
}
在 main 包中我們在運行前調用剛纔的方法即可。
不知道大家有沒有學會呢?
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/MsBIv1xxy_e0KFPoyUpeuA