我一直在使用gorilla/mux https://github.com/gorilla/mux满足我的路由需求。但我注意到一个问题,当我嵌套多个子路由器时它不起作用。
这是示例:
func main() {
r := mux.NewRouter().StrictSlash(true)
api := r.Path("/api").Subrouter()
u := api.Path("/user").Subrouter()
u.Methods("GET").HandleFunc(UserHandler)
http.ListenAndServe(":8080", r)
}
我想使用这种方法,这样我就可以将填充路由器委托给其他一些包,例如user.Populate(api)
然而这似乎不起作用。仅当我在链中使用单个子路由器时它才有效。
有任何想法吗?
我想通了,所以我就把它贴在这里,以防有人像我一样愚蠢。 :D
创建基于路径的子路由器时,必须使用以下命令获取它PathPrefix
代替Path
.
r.PathPrefix("/api").Subrouter()
Use r.Path("/api")
仅当将处理程序附加到该端点时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)