gin框架封裝自己的路由 ②


在一個項目中,我們會有很多路由,那么我們該如何更好的管理自己的路由,在多人協同的情況下可以更好的規范路由呢,我來說一下自己的做法

1.承接gin框架初識(先跑一個簡單demo) ①,先創建一個controller文件夾,再創建子文件夾及go文件,如下:

 

 2.每個go文件的代碼如下:

project->index.go:

package main

import (
    c "project/controller"

    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()
    rr := c.GinRouter(r)

    // 監聽並在 0.0.0.0:8080 上啟動服務
    rr.Run(":8080")
}
View Code

project->controller->index.go:

package controller

import (
    "fmt"
    "project/controller/forth"
    "project/controller/second"
    "project/controller/third"

    "github.com/gin-gonic/gin"
)

func GinRouter(r *gin.Engine) *gin.Engine {
    rr := r.Group("/")
    rr.GET("/first", func(c *gin.Context) {
        fmt.Println("first .........")
    })
    rr = r.Group("/a")
    second.Routers(rr)
    third.Routers(rr)
    forth.Routers(rr)
    return r
}
View Code

project->controller->second->index.go:

package second

import (
    "fmt"

    "github.com/gin-gonic/gin"
)

func Routers(r *gin.RouterGroup) {
    rr := r.Group("")
    rr.POST("/second", Function)
    return
}
func Function(c *gin.Context) {
    fmt.Println("second .........")
    return
}
View Code

project->controller->third->index.go:

package third

import (
    "fmt"

    "github.com/gin-gonic/gin"
)

func Routers(r *gin.RouterGroup) {
    rr := r.Group("")
    rr.POST("/third", Function)
    return
}
func Function(c *gin.Context) {
    fmt.Println("third .........")
    return
}
View Code

project->controller->forth->index.go:

package forth

import (
    "fmt"

    "github.com/gin-gonic/gin"
)

func Routers(r *gin.RouterGroup) {
    rr := r.Group("")
    rr.POST("/forth", Function1)
    rr.POST("/five", Function2)
    return
}
func Function1(c *gin.Context) {
    fmt.Println("forth .........")
    return
}
func Function2(c *gin.Context) {
    fmt.Println("five .........")
    return
}
View Code

3.執行一下代碼:

 

這樣的寫法能夠保證,在多人協作的情況下,代碼的合並不會出現很大的問題,而且路由管理也相方便。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM