如何在杜松子酒中对路线进行分组?

我想将我的路线分组在不同的文件中,所以主文件不会很乱。


我想要在他们自己的文件中这样的东西:


v1 := router.Group("/v1")

{

  v1.Group("users", usersRoutes)

  v1.Group("pictures", picturesRoutes)

  v1.Group("friends", friendsRoutes)

}

所以每一个*Routes看起来像这样:


users := v1.Group("/users")

{

  users.GET("/", getUsers)

  users.POST("/", createUser)

}

这可能吗?现在我的代码如下所示:


package app


import (

    "net/http"


    "github.com/gin-gonic/gin"

)


func getUrls() {

    v1 := router.Group("/v1")

    {

        ping := v1.Group("/ping")

        {

            ping.GET("/", pongFunction)

        }

        users := v1.Group("/users")

        {

            users.GET("/", getUsersFunction)

        }

    }

}

但这将大大增加其规模。


aluckdog
浏览 107回答 1
1回答

郎朗坤

您需要将路由器变量存储在您的结构或全局变量中。然后各个 go 文件将向该变量添加处理程序。这是一个例子:路线.gopackage appimport (    "github.com/gin-gonic/gin")type routes struct {    router *gin.Engine}func NewRoutes() routes {    r := routes{        router: gin.Default(),    }    v1 := r.router.Group("/v1")    r.addPing(v1)    r.addUsers(v1)    return r}func (r routes) Run(addr ...string) error {    return r.router.Run()}乒乓球package appimport "github.com/gin-gonic/gin"func (r routes) addPing(rg *gin.RouterGroup) {    ping := rg.Group("/ping")    ping.GET("/", pongFunction)}func pongFunction(c *gin.Context) {    c.JSON(200, gin.H{        "message": "pong",    })}用户.gopackage appimport "github.com/gin-gonic/gin"func (r routes) addUsers(rg *gin.RouterGroup) {    users := rg.Group("/users")    users.GET("/", getUsersFunction)}func getUsersFunction(c *gin.Context) {    c.JSON(200, gin.H{        "users": "...",    })}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go