如何实现子路由
How to implement sub-routes
我想实现这样的路线
user/profile
user/cart
user/products
目前,我正在做这个
r.HandleFunc("user/signup", signupHandler).Methods("POST")
r.HandleFunc("user/signin", signinHandler).Methods("POST")
r.HandleFunc("user/profile", profileHandler).Methods("GET")
r.HandleFunc("user/cart", cartHandler).Methods("POST")
r.HandleFunc("user/products", productsHandler).Methods("GET")
如您所见,这些路由以 user
开头,所以我怎么知道它是 user
路由,以便我可以在不同的文件中发送处理它。
我想要类似的东西
r.HandleFunc("user/", handlerWhichHandelAllTheRequestFromUser)
它应该处理从 users
.
开始的所有 URL
我正在使用 mux gorilla
mux中有一个PathPrefix函数。在这种情况下,您可以使用它来制作路径前缀,即“/user”。
示例:-
userHandler.go
func makeUserHandler()http.Handler{
//Define all you handlers here
r := mux.NewRouter()
r.HandleFunc("user/signup", signupHandler).Methods("POST")
r.HandleFunc("user/signin", signinHandler).Methods("POST")
r.HandleFunc("user/profile", profileHandler).Methods("GET")
r.HandleFunc("user/cart", cartHandler).Methods("POST")
r.HandleFunc("user/products", productsHandler).Methods("GET")
return r
}
main.go
r := mux.NewRouter()
r.PathPrefix("/user").Handler(makeUserHandler())
请根据您的要求对上述代码进行必要的修改。
我想实现这样的路线
user/profile
user/cart
user/products
目前,我正在做这个
r.HandleFunc("user/signup", signupHandler).Methods("POST")
r.HandleFunc("user/signin", signinHandler).Methods("POST")
r.HandleFunc("user/profile", profileHandler).Methods("GET")
r.HandleFunc("user/cart", cartHandler).Methods("POST")
r.HandleFunc("user/products", productsHandler).Methods("GET")
如您所见,这些路由以 user
开头,所以我怎么知道它是 user
路由,以便我可以在不同的文件中发送处理它。
我想要类似的东西
r.HandleFunc("user/", handlerWhichHandelAllTheRequestFromUser)
它应该处理从 users
.
我正在使用 mux gorilla
mux中有一个PathPrefix函数。在这种情况下,您可以使用它来制作路径前缀,即“/user”。
示例:-
userHandler.go
func makeUserHandler()http.Handler{
//Define all you handlers here
r := mux.NewRouter()
r.HandleFunc("user/signup", signupHandler).Methods("POST")
r.HandleFunc("user/signin", signinHandler).Methods("POST")
r.HandleFunc("user/profile", profileHandler).Methods("GET")
r.HandleFunc("user/cart", cartHandler).Methods("POST")
r.HandleFunc("user/products", productsHandler).Methods("GET")
return r
}
main.go
r := mux.NewRouter()
r.PathPrefix("/user").Handler(makeUserHandler())
请根据您的要求对上述代码进行必要的修改。