go - 如何在查询路由器中使用多个参数

标签 go filter routes gorilla

各位! 问题是: 如何在查询路由器中写多个参数,所以我可以这样写一个,两个或更多参数:

  /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/

相关文章:

go - 如何构建程序作为测试的一部分

go - 整数和二进制的符号AND校验

enums - 是否可以在不在 Golang 中创建 String() 的情况下获取 Enum 名称

filter - 将聚合限制为过滤器的结果

javascript 未在 HTML 文件中加载 - NodeJS + ExpressJS

戈朗 : how can filename arguments be parsed?

python - 在 TreeView 上添加默认过滤器 - OpenErp 自定义模块

java - 如何跳过缺少特定列的 HBase 行?

javascript - 如何在Backbone中向另一个页面传递参数?

c# - 如何使用 [HttpGetAttribute] 路由,包括 AspNet.Core WebApi 应用程序中的查询字符串?