我有以下代码:
apiRouter := mux.NewRoute().PathPrefix("/").Subrouter()
// Bucket router
bucket := apiRouter.PathPrefix("/{bucket}").Subrouter()
bucket.Methods("HEAD").Path("/{object:.+}").HandlerFunc(
api.HeadObjectHandler)
// Similarly handle many more methods
我正在尝试在' bucket'处理的所有操作之上添加stat集合。 subrouter。此统计信息收集框架将需要“#”桶。传递给bucket使用的所有处理程序的名称。
有没有办法在Go中为子路由器添加包装?我发现了一些类似的问题:
(i)Using middleware with Golang Gorilla mux subrouters 但上述问题的答案只能用于静态前缀,而我想知道与" / {bucket}"
匹配的存储桶名称(ii)This是使用新的mux对象解决相同问题的另一个链接。这可能有用,但看起来很像代码。我是golang的新手,而且我正在更改较大代码库的一小部分,所以我不确定使用第一个mux对象对剩余代码的影响。
有没有办法在不使用(ii)中的解决方案的情况下完成我需要的工作?
答案 0 :(得分:0)
您只需要添加以下内容:
bucket.use(middleware)
仅在此子路由器中使用中间件。