json - 如何在 Golang 服务器中通过 ID 参数返回特定的 JSON 数据
问题描述
我正在做一个由我自己负责的项目。
我正在尝试设置一个 Golang 服务器,该服务器根据用户传递的参数(ID)显示来自远程 json 文件的 JSON 数据。
我可以找到很多指南来展示如何使用 json API 中的所有数据,但我不知道如何将参数传递给函数,因此它只返回所需的数据。
这是我到目前为止所拥有的:
设置基本服务器和路由
func main() {
//Initialises basic router and endpoints
r := mux.NewRouter()
r.HandleFunc("/", home).Methods("GET")
r.HandleFunc("/games/all", getAll).Methods("GET")
r.HandleFunc("/games/{id}", getGame).Methods("POST")
r.HandleFunc("/games/report", getReport).Methods("GET")
fmt.Println("Listening on port 8080")
http.ListenAndServe(":8080", r)
}
这是我发送 GET 请求的 getAll 方法(现在使用 pokedex api,直到我托管我的 json 文件)。
func getAll(w http.ResponseWriter, r *http.Request) {
response, err := http.Get("http://pokeapi.co/api/v2/pokedex/kanto/")
if err != nil {
fmt.Print(err.Error())
os.Exit(1)
}
responseData, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(responseData))
}
还为数据构建了结构。但是我一辈子都无法找到一种方法来传递参数来执行 getGame 方法来处理该路线。请,如果有人能指出我正确的方向。