我想创建一个/ user子路由器,如下所示
user := app.Router.PathPrefix("/user").Subrouter()
user.HandleFunc("/create", (&controllers.User{c}).Create)
user.HandleFunc("", (&controllers.User{c}).Create).Methods("POST")
user.HandleFunc("", (&controllers.User{c}).FindAll).Methods("GET")
user.HandleFunc("/{id}", (&controllers.User{c}).Update).Methods("PUT")
user.HandleFunc("/{id}", (&controllers.User{c}).Destroy).Methods("DELETE")
user.HandleFunc("/{id}", (&controllers.User{c}).FindOne).Methods("GET")
问题是域/用户doenst工作。我能做到这一点
user.HandleFunc("/", (&controllers.User{c}).Create).Methods("POST")
但它只匹配域/用户/ 任何想法如何解决这个
答案 0 :(得分:0)
您可以将路由器的strict slash设置为true
,以便/domain/user
重定向到/domain/user/
。
你需要在顶部:
app.Router.StrictSlash(true)
并将路线设置为:
user.HandleFunc("/", (&controllers.User{c}).Create).Methods("POST")
user.HandleFunc("/", (&controllers.User{c}).FindAll).Methods("GET")
答案 1 :(得分:0)
如果将strict slash设置为true对你不起作用,那么你可能必须在路由器中没有斜杠处理路由而不是使用子路由器:
app.Router.HandleFunc("/user", (&controllers.User{c}).Create).Methods("POST")
app.Router.HandleFunc("/user", (&controllers.User{c}).FindAll).Methods("GET")