路由传入请求

我正在尝试使用 Go 创建一个简单的 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)

这工作得很好,我能够执行所需的任务。有人能告诉我为什么会发生这种情况吗?


慕后森
浏览 95回答 1
1回答

桃花长相依

路由器是大猩猩/复用器吗?如果是这样,您无法像这样将查询参数添加到路径中。你必须:  router.Path("/msa/dom/perform-factory-reset").  Queries("json","{jsonData}").HandlerFunc(CallGet)如果是其他路由器,那么您可能仍然需要注册不带查询参数的路径,然后从请求的处理程序中获取查询参数值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go