当前位置: 首页 > 面试题库 >

如何使用Gorilla Mux在GET请求中进行可选查询?

秦永望
2023-03-14
问题内容

我希望一些查询参数是可选的。至于现在,我有

r.HandleFunc("/user", userByValueHandler).
    Queries(
        "username", "{username}",
        "email", "{email}",
    ).
    Methods("GET")

但是在这种情况下,请求中必须包含“用户名”和“电子邮件”。我想要一个更灵活的选择:使用2个或仅选择其中之一(但不设置零参数)。

谢谢!


问题答案:

因此,我找到了将逻辑重写为的解决方案:

r.HandleFunc("/user", UserByValueHandler).Methods("GET")

在其中UserByValueHandler我们可以有类似以下内容:

func UserByValueHandler(w http.ResponseWriter, r *http.Request) {
       v := r.URL.Query()

       username := v.Get("username")
       email := v.Get("email")
       .....
}


 类似资料:
  • 我正在尝试向CloudScrape的在线网站scraper发出API请求,文档显示了以下示例。 POST /api/runs/{runId}/执行/输入/等待HTTP/1.1 X-CloudScrape-Access: ga09usdm8osdf8n9sodf X-CloudScrape-Account:87750c5f-7423-4438-b3f1-7b8b86990621 接受:applica

  • 问题内容: 我应该如何在jQuery Ajax请求中传递查询字符串值?我目前按照以下方式进行操作,但是我敢肯定有一种更清洁的方法,不需要我手动编码。 我已经看到了将查询字符串参数作为数组传递的示例,但是我看到的这些示例没有使用模型,而是直接使用。例如: 我更喜欢使用$ .ajax()格式,因为这是我习惯的格式(没有特别好的理由-只是个人喜好)。 编辑09/04/2013: 在我的问题结束(如“太过

  • 我应该如何在jQuery Ajax请求中传递查询字符串值?我目前是这样做的,但我肯定有一个更干净的方法,不需要我手动编码。 我见过查询字符串参数作为数组传递的示例,但这些示例没有使用模型,而是直接使用。例如: 我更喜欢使用$.ajax()格式,因为这是我习惯的格式(没有特别好的理由--只是个人偏好)。 编辑09/04/2013: 在我的问题结束后(因为“太本地化”),我发现了一个相关的(相同的)问

  • 因此,当前,当我的webapp发出get请求时,uri如下所示: 用户?USDERID=123 我想要的是 用户/123 我该怎么做? Googleing如何在javascript中发出get请求,当我想要后者时,就会给出前者的URI。 @requestmapping(value=“/users/{userId}”,method=requestmethod.get) 编辑: 因此,我在回复中尝试了

  • 我有一个具有OAuth2授权的Spring Cloud应用程序: 我添加了这个安全配置: github:https://github.com/rcbandit111/OAuth2/blob/master/src/main/java/org/engine/security/WebSecurityConfig.java 打开Angular应用程序时,出现访问错误: 您知道我需要应用什么配置才能在没有强

  • 问题内容: 如何在JavaScript中查看最后的GET http请求?基本上,我所能看到的是我的Firebug控制台。当XMLHttpRequests在控制台中显示时,我看到一行看起来像这样: 如何在JavaScript中查看该URL? 编辑:为了清楚起见,我正在寻找GET …和… 200之间的URL。我什么都不在乎。我不要任何其他信息。 问题答案: 我最终找到了在PHP中使用的变通办法,然后将