第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在杜松子酒中組合一組路線?

如何在杜松子酒中組合一組路線?

Go
BIG陽 2022-06-13 15:47:26
我在兩個(gè)不同的包中創(chuàng)建了兩個(gè)不同的組用于gin專門路由/user,/todo我想將它們合并到一個(gè)文件中。這是我的userroutes.go文件。package userrouterimport (    "github.com/gin-gonic/gin")//UserRoutes for userfunc UserRoutes() *gin.RouterGroup {    r := gin.Default()    v1 := r.Group("/user")    {        v1.GET("/hello", func(c *gin.Context) {            c.JSON(200, gin.H{                "message": "pong",            })        })    }    return v1}并且todoroutes.go作為package todorouterimport (    "github.com/gin-gonic/gin")//TodoRoutes for creating Todofunc TodoRoutes() *gin.RouterGroup {    r := gin.Default()    v2 := r.Group("/todo")    {        v2.GET("/hello", func(c *gin.Context) {            c.JSON(200, gin.H{                "message": "pong",            })        })    }    return v2}然后想將它們合并到routes.go.package routerimport (    todo "TODO/api/Routes/Todo/TodoRoutes"    user "TODO/api/Routes/User/UserRoutes"    "fmt"    "github.com/gin-gonic/gin")//Router for all routesfunc Router() {    // r := gin.Default()    userRoutes := user.UserRoutes()    todoRoutes := todo.TodoRoutes()}如何將它們合并到一個(gè)文件中,以便可以使用/api諸如localhost:8081/api/user/createor之類的前綴來獲取它們localhost:8081/api/todo/create。另外,我是否需要在我創(chuàng)建r := gin.Default()的每條路線中創(chuàng)建,或者可以使用一次來完成?謝謝。
查看完整描述

2 回答

?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

只需創(chuàng)建一個(gè)超級(jí)組,然后在其下創(chuàng)建您的組。代碼示例來說明我的意思:


    router := gin.New()

    

    superGroup := router.Group("/api")

    {

        userGroup := superGroup.Group("/user")

        {

            // user group handlers

        }

    

        todoGroup := superGroup.Group("/todo")

        {

            // todo group handlers

        }

    }


使用此代碼,您無法像現(xiàn)在那樣創(chuàng)建組,因?yàn)槟暮瘮?shù)todorouter.TodoRoutes和userrouter.UserRoutes實(shí)例化它們自己的gin.Engine. 因此,您必須將頂級(jí)引擎和/api組移動(dòng)到一個(gè)共同的地方。


如果需要,您可以將 api 組對(duì)象作為函數(shù)參數(shù)傳遞。例子:


//TodoRoutes for creating Todo

func TodoRoutes(apiGroup *gin.RouterGroup) {


    v2 := apiGroup.Group("/todo")

    {


        v2.GET("/hello", func(c *gin.Context) {

            c.JSON(200, gin.H{

                "message": "pong",

            })

        })


    }

}

然而,我的建議是讓您的代碼井井有條,將所有路由器實(shí)例化在同一個(gè)地方,然后將處理程序放在單獨(dú)的包中。


// package todoroutes

func HandleHello(c *gin.Context) {

            c.JSON(200, gin.H{

                "message": "pong",

            })

}


// package router

    router := gin.New()

    

    superGroup := router.Group("/api")

    {

        userGroup := superGroup.Group("/user")

        {

             userGroup.GET("/hello", todoroutes.HandleHello)

        }

    }


查看完整回答
反對(duì) 回復(fù) 2022-06-13
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

這個(gè)答案基于blackgreen 的 answer。這是我對(duì)類似問題的解決方案。我創(chuàng)建了一個(gè)超級(jí)組(“/api/v1”),然后在它下面添加子組(“users”、“books”)。我能夠?qū)⒆咏M放入不同的文件中,并向它們發(fā)送一個(gè)gin.RouterGroup(). 結(jié)果,我有了這個(gè)漂亮而干凈的文件夾結(jié)構(gòu):


controllers/

  user_controllers

  book_controllers

routes/

  user_routes

  book_rontrollers

  index

middlewares/

  all

main.go

main.go


func startServer() {

    app := gin.New()


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

    routes.AddRoutes(router)


    utils.ConnectDatabase()


    app.Run(":5500")

}

路線/book_routes.go


package routes


func bookRoutes(superRoute *gin.RouterGroup) {

    booksRouter := superRoute.Group("/books")

    {

        booksRouter.GET("/", controllers.BookControllers.GetBooks)


        booksRouter.POST("/", controllers.BookControllers.CreateBook)

    }

}

路線/user_routes.go


package routes


func userRoutes(superRoute *gin.RouterGroup) {

    booksRouter := superRoute.Group("/users")

    {

        booksRouter.GET("/", controllers.UserControllers.GetUsers)


        booksRouter.POST("/", controllers.UserControllers.CreateUser)

    }

}

路線/index.go


func AddRoutes(superRoute *gin.RouterGroup) {

    bookRoutes(superRoute)

    userRoutes(superRoute)

}


查看完整回答
反對(duì) 回復(fù) 2022-06-13
  • 2 回答
  • 0 關(guān)注
  • 128 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)