1

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

gorilla mux 是用于此目的的正确软件包,还是有其他东西可以看?这是可以做到的吗?

4

1 回答 1

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])
}
于 2014-07-17T20:10:30.177 回答