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

大猩猩混合器无法将两条路线分开

大猩猩混合器无法将两条路线分开

Go
繁花如伊 2022-08-01 19:01:30
我正在使用大猩猩,我发现大猩猩路由器无法解析两条路由。我在每个URL的末尾使用尾部斜杠。请考虑以下路由表:    router := mux.NewRouter()    baseUri, _ := stringFormatter.Format("/api/{0}", apiVersion)    // function resource    router.HandleFunc(baseUri + "/function/", webApiContext.GetAllFunctions).Methods("GET")    router.HandleFunc(baseUri + "/function/find/", webApiContext.FindFunctions).Methods("GET").Queries("query", "{query}")    router.HandleFunc(baseUri + "/function/{id}/", webApiContext.GetFunctionById).Methods("GET")    router.HandleFunc(baseUri + "/function/{id}/body/", webApiContext.GetFunctionBodyById).Methods("GET")    router.HandleFunc(baseUri + "/function/", webApiContext.CreateFunction).Methods("POST")    router.HandleFunc(baseUri + "/function/{id}/", webApiContext.UpdateFunction).Methods("PUT")    router.HandleFunc(baseUri + "/function/{id}/", webApiContext.DeleteFunction).Methods("DELETE")大猩猩无法将这两条路线分开GET /function/{id}/和GET /function/find/?query={query}。如果我在按id获取函数上方放置一个查找方法,则通过id URL查找查找和获取函数的处理程序调用。这可以通过从这些URL之一中删除尾部斜杠来解决,即用于查找URL声明。但是我必须使用StrictSlash(true)函数,这使得无法将该黑客与URL声明一起使用。您能否通过正确的URL声明来帮助解决问题。
查看完整描述

1 回答

?
肥皂起泡泡

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

我们必须使用正则表达式在弯曲的括号内进行路径变量检查,因此正确的路由表应该看起来像^


    router.HandleFunc(baseUri + "/function/", webApiContext.GetAllFunctions).Methods("GET")

    router.HandleFunc(baseUri + "/function/find/", webApiContext.FindFunctions).Methods("GET").Queries("query", "{query}")

    router.HandleFunc(baseUri + "/function/{id:[0-9]+}/", webApiContext.GetFunctionById).Methods("GET")

    router.HandleFunc(baseUri + "/function/{id:[0-9]+}/body/", webApiContext.GetFunctionBodyById).Methods("GET")

    router.HandleFunc(baseUri + "/function/", webApiContext.CreateFunction).Methods("POST")

    router.HandleFunc(baseUri + "/function/{id:[0-9]+}/", webApiContext.UpdateFunction).Methods("PUT")

    router.HandleFunc(baseUri + "/function/{id:[0-9]+}/", webApiContext.DeleteFunction).Methods("DELETE")


查看完整回答
反对 回复 2022-08-01
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

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