GET 请求中的查询参数:使用 Gorilla Mux 的可选参数
在 Gorilla Mux 中,查询参数用于过滤和检索来自HTTP 请求。默认情况下,所有指定的查询参数都必须出现在请求中。但是,在某些情况下,您可能希望将某些参数设置为可选。
例如,考虑这样一个场景:您希望 GET 请求包含“用户名”或“电子邮件”参数,但不一定同时包含两者。以前,您的代码可能看起来像这样:
<code class="go">r.HandleFunc("/user", userByValueHandler). Queries( "username", "{username}", "email", "{email}", ). Methods("GET")</code>
此代码要求请求中同时存在“用户名”和“电子邮件”。为了使这些参数可选,我们可以修改代码如下:
<code class="go">r.HandleFunc("/user", UserByValueHandler).Methods("GET")</code>
现在,无论查询参数是否存在,都会调用“/user”路由处理程序。要检索可选参数,我们可以在处理函数中使用 URL.Query() 方法:
<code class="go">func UserByValueHandler(w http.ResponseWriter, r *http.Request) { v := r.URL.Query() username := v.Get("username") email := v.Get("email") ..... }</code>
v.Get() 函数将返回与指定参数名称关联的值,或者一个如果参数不存在则为空字符串。这使我们能够处理请求中提供一个或两个参数的两种情况。
以上是如何使 Gorilla Mux GET 请求中的查询参数可选?的详细内容。更多信息请关注PHP中文网其他相关文章!