Polygon Go 客户端使用教程
1. 项目目录结构及介绍
Polygon Go 客户端项目的目录结构如下:
client-go/
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── go.mod
├── go.sum
└── rest/
├── trades.go
├── models/
├── models.go
└── ...
└── websocket/
├── websocket.go
├── models/
├── models.go
└── ...
目录结构介绍
- .gitignore: Git 忽略文件配置。
- LICENSE: 项目许可证文件,采用 MIT 许可证。
- Makefile: 项目构建和管理的 Makefile 文件。
- README.md: 项目说明文档,包含项目的基本介绍和使用指南。
- go.mod: Go 模块文件,用于管理项目的依赖。
- go.sum: Go 模块的校验和文件,确保依赖的完整性和安全性。
- rest/: 包含 REST API 客户端的实现文件。
- trades.go: 处理股票交易的 REST API 客户端实现。
- models/: 包含 REST API 客户端使用的数据模型。
- websocket/: 包含 WebSocket API 客户端的实现文件。
- websocket.go: 处理 WebSocket 连接和数据推送的客户端实现。
- models/: 包含 WebSocket API 客户端使用的数据模型。
2. 项目启动文件介绍
项目的启动文件是 main.go,通常用于初始化客户端并执行 API 请求。以下是一个简单的启动文件示例:
package main
import (
"context"
"log"
"os"
polygon "github.com/polygon-io/client-go/rest"
"github.com/polygon-io/client-go/rest/models"
)
func main() {
// 初始化客户端
c := polygon.New(os.Getenv("POLYGON_API_KEY"))
// 设置请求参数
params := &models.GetLastTradeParams{
Ticker: "AAPL",
}
// 发起请求
res, err := c.GetLastTrade(context.Background(), params)
if err != nil {
log.Fatal(err)
}
// 处理结果
log.Print(res)
}
启动文件介绍
- package main: 定义了主包,用于执行程序的入口。
- import: 导入了必要的包,包括
context、log、os以及 Polygon 客户端的相关包。 - main 函数: 程序的入口函数,初始化客户端并执行 API 请求。
- polygon.New: 使用环境变量中的 API 密钥初始化客户端。
- GetLastTrade: 发起获取最新交易数据的请求。
- log.Print: 打印请求结果。
3. 项目的配置文件介绍
项目的配置主要通过环境变量和代码中的配置选项来完成。以下是主要的配置项:
环境变量
- POLYGON_API_KEY: 用于存储 Polygon API 密钥,确保 API 请求的认证。
代码中的配置选项
- polygon.New: 初始化客户端时传入 API 密钥。
- polygon.NewWithClient: 允许使用自定义的 HTTP 客户端进行初始化。
配置示例
package main
import (
"net/http"
"os"
polygon "github.com/polygon-io/client-go/rest"
)
func main() {
// 使用默认 HTTP 客户端
c := polygon.New(os.Getenv("POLYGON_API_KEY"))
// 使用自定义 HTTP 客户端
hc := &http.Client{}
c := polygon.NewWithClient(os.Getenv("POLYGON_API_KEY"), hc)
}
配置文件介绍
- 环境变量: 通过
os.Getenv("POLYGON_API_KEY")获取 API 密钥,确保安全性和灵活性。 - 自定义 HTTP 客户端: 通过
polygon.NewWithClient方法,允许用户传入自定义的 HTTP 客户端,以满足特定的网络需求或安全策略。
通过以上配置,用户可以灵活地使用 Polygon Go 客户端进行 API 请求,并根据需要进行自定义配置。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



