亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我們不能在大猩猩子路由器路徑前綴中包含變量嗎?

我們不能在大猩猩子路由器路徑前綴中包含變量嗎?

Go
慕的地8271018 2022-12-13 16:11:11
我正在嘗試將子路由器添加到我的路由器代碼中:router := mux.NewRouter()baseRouter := router.PathPrefix("/api/v1").Subrouter()managementRouter := baseRouter.PathPrefix("/managing/{id}").Subrouter()managementRouter.Use(auth.ManagingMiddleware)managementRouter.HandleFunc("/add-employees", management.AddEmployeesToOrganization).Methods("POST")目標是強制客戶端id在每次調用managementRouter 函數時給出一個變量。雖然,當我發送這樣的請求時:/api/v1/managing/627e6f7e05db3552970e1164/add-employees...我得到一個 404。我是不是遺漏了什么,或者這是不可能的?
查看完整描述

1 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

好的所以我昨晚在夢中找到了解決方案哈哈

基本上是以下前綴的問題:

managementRouter := baseRouter.PathPrefix("/managing/{id}").Subrouter()

是路由器無法知道該id字段在哪里停止。因此,當我們使用例如此 url : 訪問端點時/api/v1/managing/627e6f7e05db3552970e1164/add-employees,路由器認為該{id}變量是字面上的627e6f7e05db3552970e1164/add-employees并且不匹配它之后的任何路由。

所以我找到的解決方案是告訴路由器變量后面是什么。為此,您只需在變量后添加一個斜杠:

managementRouter := baseRouter.PathPrefix("/managing/{id}/").Subrouter()


查看完整回答
反對 回復 2022-12-13
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號