在 Gorilla Mux 中嵌套子路由器

2024-05-20

我一直在使用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(使用前将#替换为@)

在 Gorilla Mux 中嵌套子路由器 的相关文章