我刚开始学习 Go 中的 REST API,我不知道如何在我的 HTML 文件中显示 GET 请求的响应。我基本上所做的是创建一个GetCurrency()从第三方 API 获取数据的函数。现在我正在尝试Currency在 HTML 文件中呈现响应,但我似乎没有得到正确的结果,因为每当加载本地主机时,/getcurrency我都会得到一个空白页面,尽管我的.gohtml文件包含一个表单。
这是我在 main.go 文件中的结构
type pageData struct {
Title string
Currency string
}
这是我在 main.go 文件中的主要功能
func main() {
http.HandleFunc("/", home)
http.HandleFunc("/home", home)
http.HandleFunc("/getcurrency", getCurrency)
http.ListenAndServe(":5050", nil)
}
这是我home执行 HTML 的函数
func home(w http.ResponseWriter, req *http.Request) {
pd := pageData{
Title: "Etmazec Home Page",
}
err := tpl.ExecuteTemplate(w, "homepage.gohtml", pd)
if err != nil {
log.Println(err)
http.Error(w, "Internal server error", http.StatusInternalServerError)
}
}
这是我在文件getCurrency()中的功能main.go
func getCurrency(w http.ResponseWriter, req *http.Request) {
pd := pageData{
Title: "Welcome to the exchange rate website",
}
err := tpl.ExecuteTemplate(w, "currency.gohtml", pd)
response, err := http.Get("https://api.coinbase.com/v2/prices/spot?currency=USD")
if err != nil {
fmt.Printf("The http requst failed with error %s \n", err)
} else {
data, _ := ioutil.ReadAll(response.Body)
pd.Currency = string(data)
fmt.Println(string(data))
}
}
最后,这是我的currency.gohtml身体
<body>
<h1>TOP HITS</h1>
<nav>
<ul>
<li><a href="/home">HOME PAGE</a>
</ul>
</nav>
<form action="/getcurrency" method="GET">
<label for="fname">Your Name</label>
<input type="text" name="fname">
<input type="submit">
</form>
{{.Currency}}
</body>
这是我的home.gohtml文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<link rel="stylesheet" href="/public/css/main.css">
<body>
</body>
</html>
蛊毒传说
相关分类