2016-01-03 2 views
0

Если у меня есть mux.Router, как я могу установить его как «подпроцессор»? Все примеры, которые я могу найти, создают новый маршрутизатор, вызывая Route.Subrouter(), а затем устанавливая Handlers на нем, но у меня уже есть маршрутизатор!Set gorilla mux subrouter

// 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 

Это позволило бы моему апи чувствовать себя более автономным/слабо связанным. Но получение подпроцессор - это все, что у нас есть из гориллы.

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

спасибо за ввод! – Rikard

Смежные вопросы