登录
首页 >  Golang >  Go问答

子路由的实现方法

来源:stackoverflow

时间:2024-03-05 08:48:30 389浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《子路由的实现方法》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我想实现这样的路线

user/简介

user/cart

user/产品

目前我正在做这个

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())

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

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>