2016-01-03 69 views
0

如果我有一個mux.Router,如何將它設置爲「子路由器」?我可以找到的所有示例通過調用Route.Subrouter()創建一個新路由器,然後設置Handlers,但我已經有一個路由器!設置大猩猩多路複用器子路由器

// does not know about "/api/v1/" 
v1_router := mux.NewRouter() 
subrouter.HandleFuc("/route1/", ...) 
subrouter.HandleFuc("/route2/", ...) 

// does not now about route1, route2 
r := mux.NewRouter() 
r.PathPrefix("/api/v1/").???(v1_router) 

我希望我做的意義......

+0

難道你只是調用'subrouter.PathPrefix'? – kopiczko

+0

「子路由器」是如何創建的? – kopiczko

+0

@kopiczko那麼子路由器必須知道pathprefix,我不想 – Rikard

回答

0

我有同樣的感覺,並不得不忍受同樣的「解決方法」。我想將子路由器設置爲現有的路由器。像:

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

這將讓我的API感覺更自主/鬆散耦合。但得到一個子路由器是我們從大猩猩那裏得到的。

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

感謝您的輸入! – Rikard

相關問題