路由传入请求
Routing incoming request
我正在尝试使用 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)
这非常有效,我能够执行所需的任务。谁能告诉我为什么会这样?
路由器是gorilla/mux吗?如果是这样,您不能像那样将查询参数添加到路径。你必须:
router.Path("/msa/dom/perform-factory-reset").
Queries("json","{jsonData}").HandlerFunc(CallGet)
如果是其他路由器,那么你可能仍然需要注册没有查询参数的路径,然后在处理程序中从请求中获取查询参数值。
我正在尝试使用 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)
这非常有效,我能够执行所需的任务。谁能告诉我为什么会这样?
路由器是gorilla/mux吗?如果是这样,您不能像那样将查询参数添加到路径。你必须:
router.Path("/msa/dom/perform-factory-reset").
Queries("json","{jsonData}").HandlerFunc(CallGet)
如果是其他路由器,那么你可能仍然需要注册没有查询参数的路径,然后在处理程序中从请求中获取查询参数值。