Gorilla Mux 处理卷曲请求
Gorilla Mux to handle curl request
我想使用 Gorilla mux 来处理 api 请求。
命令类似于:
卷曲http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello
我正在为以下处理程序服务:
router.Methods("GET").Path("/api/myapiname/{version}").HandlerFunc(apihandler)
func apihandler(rw http.ResponseWriter, q *http.Request) {
vars := mux.Vars(q)
log.Println(vars["version"])
log.Println(q.FormValue("number"))
log.Println(q.FormValue("target"))
log.Println(q.FormValue("message"))
}
但对于 curl
请求,我只得到 number
的表单值,而不是 target
和 message
的
使用 Gorilla mux 处理 api 请求的正确方法是什么?我需要子路由吗?
我只想接收任何形式为 http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello
的 http 请求并能够将其键映射到值
谢谢!
您可以尝试将查询添加到您的路由器,在这种情况下,您将在一个映射中拥有所有变量。
router.Methods("GET").Path("/api/myapiname/{version}").Queries("number", "{number:[0-9]+}", "target", "{target:[^&]+}", "message", "{message:[^&]+}").HandlerFunc(apihandler)
func apihandler(rw http.ResponseWriter, q *http.Request) {
vars := mux.Vars(q)
log.Println(vars["version"])
log.Println(vars("number"))
log.Println(vars("target"))
log.Println(vars("message"))
}
我想使用 Gorilla mux 来处理 api 请求。
命令类似于:
卷曲http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello
我正在为以下处理程序服务:
router.Methods("GET").Path("/api/myapiname/{version}").HandlerFunc(apihandler)
func apihandler(rw http.ResponseWriter, q *http.Request) {
vars := mux.Vars(q)
log.Println(vars["version"])
log.Println(q.FormValue("number"))
log.Println(q.FormValue("target"))
log.Println(q.FormValue("message"))
}
但对于 curl
请求,我只得到 number
的表单值,而不是 target
和 message
的
使用 Gorilla mux 处理 api 请求的正确方法是什么?我需要子路由吗?
我只想接收任何形式为 http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello
的 http 请求并能够将其键映射到值
谢谢!
您可以尝试将查询添加到您的路由器,在这种情况下,您将在一个映射中拥有所有变量。
router.Methods("GET").Path("/api/myapiname/{version}").Queries("number", "{number:[0-9]+}", "target", "{target:[^&]+}", "message", "{message:[^&]+}").HandlerFunc(apihandler)
func apihandler(rw http.ResponseWriter, q *http.Request) {
vars := mux.Vars(q)
log.Println(vars["version"])
log.Println(vars("number"))
log.Println(vars("target"))
log.Println(vars("message"))
}