cloudflare-typescript 安装与 API Token 认证详解:新手零踩坑连接 Cloudflare API 教程
【免费下载链接】cloudflare-typescriptThe official TypeScript library for the Cloudflare API项目地址: https://gitcode.com/gh_mirrors/cl/cloudflare-typescript
cloudflare-typescript 是 Cloudflare 官方出品的 TypeScript SDK(npm 包名为cloudflare),它让你用类型安全的代码直接调用 Cloudflare REST API——创建 Zone、管理 DNS、部署 Workers、操作 KV 全部一行搞定。本教程带你完成安装与 API Token 认证两大关键步骤,全程零踩坑。
为什么选择官方 SDK?
自己动手拼 HTTP 请求 + 手写 JSON 解析,容易在分页、重试、超时这些细节上踩坑。官方 SDK 帮你把这些全部封装好了:
- ✅完整的 TypeScript 类型定义:所有请求参数和响应字段都有类型提示,IDE 悬停即可看文档
- ✅自动重试:网络抖动、429 限流、5xx 错误默认自动重试 2 次
- ✅自动分页:列表接口可用
for await…of遍历所有页 - ✅错误分类清晰:401、403、404、429 各自对应不同的错误类型
- ✅多运行时支持:Node.js 20+、Deno、Bun、Cloudflare Workers、浏览器均可运行
客户端核心逻辑位于src/client.ts,错误定义在src/core/error.ts,想深入了解源码可以从这两个文件入手。
快速安装 cloudflare-typescript
要求环境:TypeScript 4.9+,Node.js 20 LTS 及以上版本(Deno 1.28+ / Bun 1.0+ 也支持)。
在项目中执行以下命令即可:
npm install cloudflare💡 小贴士:包名是
cloudflare而不是cloudflare-typescript,这是新手最容易搞错的一点。仓库名与 npm 包名不一致,属于正常现象。
安装完成后,node_modules/cloudflare/dist/index.js即为入口文件,同时提供 ESM(index.mjs)和 CommonJS(index.js)双格式,import和require都能用。
API Token 认证:连接 Cloudflare API 的关键
认证是整个流程中最容易报错的环节。官方推荐API Token(而非老式的 Global API Key),只需在 Cloudflare 控制台创建,权限可以精确控制到"某账号 + 某资源 + 只读/编辑",安全性远高于全局密钥。
方式一:环境变量(强烈推荐)
SDK 默认读取环境变量CLOUDFLARE_API_TOKEN(见src/client.ts中的readEnv('CLOUDFLARE_API_TOKEN')),这是官方示例脚本的标准用法,例如examples/workers/script-upload.ts和examples/ai/demo.ts都是这样写的:
export CLOUDFLARE_API_TOKEN="你的Token值"之后创建客户端时什么都不用传:
import Cloudflare from 'cloudflare'; const client = new Cloudflare(); // 自动从环境变量读取 Token方式二:代码中直接传入
const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], });两种方式效果完全一致:SDK 会在每个请求头里加上Authorization: Bearer <你的Token>(拼接逻辑见src/internal/headers.ts)。
其他你可能用到的环境变量
| 环境变量 | 作用 |
|---|---|
CLOUDFLARE_API_TOKEN | API Token 认证(首选) |
CLOUDFLARE_API_KEY+CLOUDFLARE_EMAIL | 旧版 Global API Key 认证(不推荐新使用) |
CLOUDFLARE_BASE_URL | 覆盖默认 API 地址 |
CLOUDFLARE_API_USER_SERVICE_KEY | Origin CA 证书 API 专用密钥 |
CLOUDFLARE_LOG | 控制日志级别(debug / info / warn / error / off) |
新手常见报错速查
遇到报错先对照这张表,90% 的问题都能秒解:
| 报错 | 原因 | 解决 |
|---|---|---|
AuthenticationError(401) | Token 无效、被撤销或未配置 | 检查CLOUDFLARE_API_TOKEN是否正确、是否在控制台被删除 |
PermissionDeniedError(403) | Token 权限不够 | 重新创建 Token,勾选对应资源权限(如 Zone:Write) |
NotFoundError(404) | account_id 或 zone_id 写错 | 控制台核对 ID,别把 Zone ID 填到 account_id 里 |
RateLimitError(429) | 触发限流 | 放心,SDK 会默认自动重试 2 次 |
APIConnectionError | 网络不通 | 检查网络/代理,可通过fetchOptions配置代理 |
客户端常用配置一览
除了认证,这几个配置项能帮你少踩很多坑:
maxRetries:失败重试次数,默认 2 次,设为 0 可关闭timeout:单请求超时时间,默认 1 分钟logLevel:设为'debug'可打印完整请求与响应,调试认证问题特别好用baseURL:对接自建网关或测试环境时使用
const client = new Cloudflare({ logLevel: 'debug', // 调试时打开,看到完整的请求日志 });第一次成功调用 API
认证配置好之后,用下面这段最小代码验证连通性——列出你的所有 Zone:
import Cloudflare from 'cloudflare'; const client = new Cloudflare(); const page = await client.zones.list(); for (const zone of page.result) { console.log(zone.name, zone.id); }能打印出域名和 ID,说明安装、认证全部成功 🎉
项目结构快速导航
| 路径 | 说明 |
|---|---|
src/client.ts | 客户端主类,认证与环境变量读取逻辑 |
src/core/error.ts | 各类 API 错误定义 |
src/core/pagination.ts | 自动分页实现 |
src/resources/ | 各产品(Zones、KV、Workers 等)API 封装 |
examples/ai/demo.ts | Workers AI 调用示例 |
examples/workers/script-upload.ts | 部署 Worker 的完整示例 |
tests/ | 按产品组织的完整测试用例,可当用法手册读 |
api.md | 全部 API 方法清单 |
总结
三步走,告别踩坑:npm install cloudflare→配置CLOUDFLARE_API_TOKEN环境变量→new Cloudflare()直接开调。记住包名与仓库名不同、401 查 Token、403 查权限,你就能用官方 TypeScript SDK 快速打通 Cloudflare API 的自动化之旅。
【免费下载链接】cloudflare-typescriptThe official TypeScript library for the Cloudflare API项目地址: https://gitcode.com/gh_mirrors/cl/cloudflare-typescript
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考