Golang大猩猩mux路线从类或文件

时间:2014-07-17 17:24:30

标签: go gorilla

我正在玩gorilla mux并希望将所有应用程序路由设置在一个文件中,这样它们就不会用一堆路由填充主文件。理想情况下,我希望能够选择甚至从数据库中提取路径。

gorilla mux是适合用于此的包装还是还有其他东西要看?这是可以做到的吗?

1 个答案:

答案 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])
}