2016-01-03 30 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

相关问题