为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现子路由

如何实现子路由

Go
繁星coding 2023-07-26 13:33:05
我想实现类似的路线user/profileuser/cartuser/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)它应该处理所有从 开始的 URL users。我正在使用 mux 大猩猩
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

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
}

主程序

r := mux.NewRouter()
r.PathPrefix("/user").Handler(makeUserHandler())

请根据您的要求对上述代码进行必要的更改。


查看完整回答
反对 回复 2023-07-26
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信