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

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

如何從其他包導(dǎo)入子路由

如何從其他包導(dǎo)入子路由

Go
慕萊塢森 2023-07-26 17:24:21
而不是在 main() 下編寫(xiě)每條路線,例如func main() {    e := echo.New()    e.GET("/api", sayHello)    e.GET("/api/music", getMusic)    e.GET("/api/user/:id", getDetail)    e.POST("/api/user", addUser)    // ...}如何從名為 的文件中導(dǎo)入這些所有子路由api.go,并在主函數(shù)中使用它們?如同import "./API"func main() {    e := echo.New()    e.UseSubroute(API.Routes) // <-- similar to this    // ...}
查看完整描述

3 回答

?
慕容森

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

您可以做的就是使用echo.Group并將其傳遞給api包,并在那里初始化路由處理程序。


package api


import (

    "github.com/labstack/echo"

)


func UseSubroute(group *echo.Group)  {

    group.GET("/", sayHello)

    group.GET("/music", getMusic)

    group.GET("/user/:id", getDetail)

    group.POST("/user", addUser)

}

主要是你可以導(dǎo)入你的api包。


package main


import (

    "github.com/labstack/echo"

    "your-repo/path-to/api" // your api package

)


func main() {

    e := echo.New()

    apiGroup := e.Group("/api")

    api.UseSubroute(apiGroup)

    // ...

}


查看完整回答
反對(duì) 回復(fù) 2023-07-26
?
胡說(shuō)叔叔

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

Echo對(duì)象沒(méi)有這個(gè)方法。我想你需要代碼嗎?


API.go:


package main


import "github.com/labstack/echo"


func UseSubroute(echo *echo.Echo)  {

    echo.GET("/api", sayHello)

    echo.GET("/api/music", getMusic)

    echo.GET("/api/user/:id", getDetail)

    echo.POST("/api/user", addUser)

}

main.go:


package main


import "github.com/labstack/echo"


func main() {

    e := echo.New()

    UseSubroute(e)

}

這兩個(gè)文件需要放在同一目錄下。


你需要它嗎?


查看完整回答
反對(duì) 回復(fù) 2023-07-26
?
侃侃爾雅

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

我提出了一個(gè)解決方案,支持可拆卸的嵌套路由。


當(dāng)前文件夾結(jié)構(gòu)如下:


.

├── routes

│? ?├── index.go

│? ?└── music.go

└── server.go

...whereserver.go是項(xiàng)目主入口,屬于main包,而index.go和music.go屬于routes包。


端點(diǎn)是


"/api"? ? ? ?-> index.go

"/api/music" -> music.go

首先,index.go我們定義一個(gè)在該級(jí)別使用路由的函數(shù)。


func UseRoute(group *echo.Group, routes func(group *echo.Group)) {

? ? routes(group)

}

然后,


在server.go


func main() {

? ? e := echo.New()

? ? apiGroup := e.Group("/api")

? ? routes.ActivateIndex(mainGroup)

}

在index.go


var mainGroup *echo.Group

func ActivateIndex(g *echo.Group) {

? ? mainGroup = g

? ? UseRoute(mainGroup, IndexRoutes)


? ? // sub routes

? ? musicGroup := mainGroup.Group("/music")

? ? ActivateMusic(musicGroup)

}

并在music.go


var musicGroup *echo.Group

func ActivateMusic(g *echo.Group) {

? ? musicGroup = g

? ? UseRoute(musicGroup, MusicRoutes)

}

注意:IndexRoutes等MusicRoutes是指定該級(jí)別端點(diǎn)的函數(shù)。


例如


func IndexRoutes(group *echo.Group) {

? ? group.GET("/", sayHello)

? ? group.GET("/user/:id", getDetail)

? ? group.POST("/user", addUser)

}

這樣就可以將路由定義在不同的.go文件中,使業(yè)務(wù)邏輯更加清晰。


例如,為了擴(kuò)展嵌套級(jí)別,我們可以ActivateHiphop在 中創(chuàng)建另一個(gè)函數(shù),并在函數(shù) fromhiphop.go中導(dǎo)入新的子路由,以便可以指向。ActivateMusicmusic.go"/api/music/hiphop"hiphop.go


ps 要在關(guān)卡中添加更多路由/api,只需在函數(shù)中創(chuàng)建更多端點(diǎn)即可IndexRoutes。


查看完整回答
反對(duì) 回復(fù) 2023-07-26
  • 3 回答
  • 0 關(guān)注
  • 172 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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