如何在Golang服务器中通过ID参数返回特定的JSON数据

时间:2019-07-03 21:11:33

标签: json http go gorilla

我正在做一个自己的项目。

我正在尝试建立一个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)

}

这是我的getAll方法,它发送GET请求(暂时使用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方法来处理该路由。拜托,如果有人能指出我正确的方向。

0 个答案:

没有答案