3 回答

TA贡献1789条经验 获得超10个赞
如果您需要分离 UI 和 API 路由器,您可以简单地执行 :
appRouter := r.PathPrefix("/").Subrouter()
appRouter.Use(myAppRouter)
apiRouter := r.PathPrefix("/api").Subrouter()
apiRouter.Use(myAPIRouter)

TA贡献1998条经验 获得超6个赞
我想通了,所以我会把它贴在这里,以防有人像我一样愚蠢。:D
创建基于路径的子路由器时,您必须使用PathPrefix
而不是Path
.
r.PathPrefix("/api").Subrouter()
使用r.Path("/api")
仅安装处理器到端点时。

TA贡献1773条经验 获得超3个赞
对于那些在 auth 和 noauth 路由之间挣扎的人来说,以下对我来说很好用:
r := mux.NewRouter()
noAuthRouter := r.MatcherFunc(func(r *http.Request, rm *mux.RouteMatch) bool {
return r.Header.Get("Authorization") == ""
}).Subrouter()
authRouter := r.MatcherFunc(func(r *http.Request, rm *mux.RouteMatch) bool {
return true
}).Subrouter()
然后你可以只为 authRouter 应用中间件
- 3 回答
- 0 关注
- 314 浏览
添加回答
举报