使用 Go 串接 CoinMarketCap API 取得加密貨幣列表

前置作業

CoinMarketCap 申請一個 API Key。

實作

建立專案。

1
2
mkdir go-coinmarketcap-api-example
cd go-coinmarketcap-api-example

初始化 Go Modules。

1
go mod init github.com/memochou1993/go-coinmarketcap-api-example

下載 joho/godotenv 套件。

1
go get github.com/joho/godotenv

新增 .env 檔,將 API Key 填入:

1
COINMARKETCAP_API_KEY=

新增 .gitignore 檔:

1
.env

新增 main.go 檔:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package main

import (
"io/ioutil"
"log"
"net/http"
"os"
"time"

_ "github.com/joho/godotenv/autoload"
)

var (
API_KEY = os.Getenv("COINMARKETCAP_API_KEY")
)

func main() {
client := &http.Client{
Timeout: time.Second * 10,
}
req, err := http.NewRequest(http.MethodGet, "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest", nil)
if err != nil {
log.Println(err)
return
}
req.Header.Add("X-CMC_PRO_API_KEY", API_KEY)
resp, err := client.Do(req)
if err != nil {
log.Println(err)
return
}
defer resp.Body.Close()
res, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Println(err)
return
}
log.Println(string(res))
}

執行程式。

1
go run main.go