我正在玩gorilla mux并希望将所有应用程序路由设置在一个文件中,这样它们就不会用一堆路由填充主文件。理想情况下,我希望能够选择甚至从数据库中提取路径。
gorilla mux是适合用于此的包装还是还有其他东西要看?这是可以做到的吗?
答案 0 :(得分:1)
gorilla mux不会这样做,并且在Go中路由库并不常见,因为它是静态类型和编译语言。
如果你有一个简单的1:1处理程序映射,你可以很容易地做到这一点:
// register the handlers or handler_funcs by name in a map:
handlerMap := make(map[string]*http.Handler)
// OR
handlerFuncMap := make(map[string]func(http.ResponseWriter, *http.Request))
handlerMap["myHandler"] = myHandler
// now you can iterate over you config values and assign them to a router
for path, handler := range routes {
myRouter.Handler(path, handlerMap[handler])
}