如何使用Gorilla Mux在GET请求中进行可选查询? [英] How to have an optional query in GET request using Gorilla Mux?
本文介绍了如何使用Gorilla Mux在GET请求中进行可选查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望我的一些查询参数是可选的。至于现在,我有
r.HandleFunc(/ user,userByValueHandler)。
查询(
用户名,{用户名},
电子邮件,{电子邮件},
)。
方法(GET)
但在这种情况下,用户名和email需要出现在请求中。我想要更灵活的选择:有2个或只有其中一个(但不是零参数)。
谢谢!
所以我找到了解决方案来重新编写我的逻辑:
<$ c $ c> r.HandleFunc(/ user,UserByValueHandler)。方法(GET)
在 UserByValueHandler
中,我们可以这样:
func UserByValueHandler w http.ResponseWriter,r * http.Request){
v:= r.URL.Query()
username:= v.Get(username)
email: = v.Get(email)
.....
}
I would like to have some of my query parameters be optional. As for now, I have
r.HandleFunc("/user", userByValueHandler).
Queries(
"username", "{username}",
"email", "{email}",
).
Methods("GET")
But in this case "username" AND "email" needs to be present in the request. I want to have more flexible choice: have 2 of them OR have just one of them (but not zero parameters).
Thanks!
解决方案
So I found the solution to re-write my logic as:
r.HandleFunc("/user", UserByValueHandler).Methods("GET")
And in UserByValueHandler
we can have something like:
func UserByValueHandler(w http.ResponseWriter, r *http.Request) {
v := r.URL.Query()
username := v.Get("username")
email := v.Get("email")
.....
}
这篇关于如何使用Gorilla Mux在GET请求中进行可选查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文