各位! 问题是: 如何在查询路由器中写多个参数,所以我可以这样写一个,两个或更多参数:
/applications/filter/?date=today
/applications/filter/?status=true
/applications/filter/?date=today&status=true
我试过了,但是它对单个参数不起作用,只对两个参数起作用:
router.HandleFunc("/applications/filter/", authMiddle.RequiresLogin(authContrl.FilterDateStatus())).
Queries("date", "{date}", "status", "{status}").Methods("GET")
最佳答案
一开始有点困惑,但你的路线在这里总是一样的:
/applications/filter/?date=today
/applications/filter/?status=true
/applications/filter/?date=today&status=true
它总是/applications/filter/
。
在那种情况下,您只需要在此处映射一条路线。句柄函数接收 request .在请求中,您可以 parse the url .
https://play.golang.org/p/op49nTJSlCP
将所有内容放在一起看起来像:
router.HandleFunc("/applications/filter/",func(w http.ResponseWriter,r *http.Request){
// in production you should handle the errors!
// I am just skipping this to keep the example simple
u, _ := url.Parse(r.URL)
v := u.Query()
if _,ok := v[date]; ok {
// do something with dae
}
})
关于go - 如何在查询路由器中使用多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52709106/