亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

設置 gorilla mux 子路由器

設置 gorilla mux 子路由器

Go
慕婉清6462132 2021-12-06 17:12:16
如果我有 mux.Router,如何將其設置為“子路由器”?我能找到的所有示例都通過調用 Route.Subrouter() 然后在其上設置處理程序來創建一個新路由器,但我已經有了一個路由器!// does not know about "/api/v1/"v1_router := mux.NewRouter()subrouter.HandleFuc("/route1/", ...)subrouter.HandleFuc("/route2/", ...)// does not now about route1, route2r := mux.NewRouter()r.PathPrefix("/api/v1/").???(v1_router)我希望我說得有道理...
查看完整描述

2 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

我有同樣的感覺,并且必須忍受相同的“解決方法”。我想將子路由器設置為現有路由器。喜歡:


r.PathPrefix("/api").SetSubrouter(api.GetRouter()) //won't work

這會讓我的 api 感覺更加自主/松散耦合。但是從大猩猩那里得到一個子路由器就是我們所擁有的。


s := r.PathPrefix("/api").Subrouter()

api.SetRoutes(s)


查看完整回答
反對 回復 2021-12-06
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

你可以這樣做:


v1 包文件:


func Handlers(subrouter *mux.Router) {

    //base handler, i.e. /v1

    r.StrictSlash(true)

    subrouter.HandleFuc("/route1/", ...)

    subrouter.HandleFuc("/route2/", ...)

}

主文件:


r := mux.NewRouter()

package.Handlers(r.PathPrefix("/api/v1").Subrouter())


查看完整回答
反對 回復 2021-12-06
  • 2 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號