【问题标题】:Routing incoming request路由传入请求
【发布时间】:2023-03-03 20:24:01
【问题描述】:

我正在尝试使用 Go 创建一个简单的 API,该 API 根据提供的数据执行某些操作。 我打算向这个 API 提供 JSON 数据并从中获取详细信息以供进一步使用。

由于我试图提供 JSON 数据,因此我使用 gorilla/mux 创建了如下路由:

    router.HandleFunc("/msa/dom/perform-factory-reset?json={jsonData}", CallGet)
    log.Fatal(http.ListenAndServe(":8080", router))

但是在尝试到达端点 http://localhost:8080/msa/dom/perform-factory-reset?json={"vrf":"ds","ip":"45","mac":"452","method":"gfd"} 时,我收到了 404 page not found 错误。

因此我尝试更改实现,以便将新路由完成为:

router.HandleFunc("/msa/dom/perform-factory-reset/json={jsonData}", CallGet)

这绝对没问题,我能够执行所需的任务。有人能告诉我为什么会这样吗?

【问题讨论】:

    标签: rest go mux


    【解决方案1】:

    路由器是gorilla/mux吗?如果是这样,您不能像这样将查询参数添加到路径中。你必须:

      router.Path("/msa/dom/perform-factory-reset").
     Queries("json","{jsonData}").HandlerFunc(CallGet)
    

    如果是其他路由器,那么你可能仍然需要注册没有查询参数的路径,然后从请求中获取处理程序中的查询参数值。

    【讨论】:

    • 是的,使用的路由器是 gorilla/mux。我不知道让我试试这个。
    猜你喜欢
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 2020-08-06
    • 2021-08-19
    • 1970-01-01
    相关资源
    最近更新 更多