客户端配置
GStableClient 接受 GStableClientOptions,其继承 GStableHttpOptions。
选项说明
| 选项 | 必填 | 说明 |
|---|---|---|
apiKey | 是 | 控制台中的 API 密钥。不要自行加 Bearer 前缀;SDK 在构造 Authorization 时会加上 Bearer <key>。若你的字符串已经以 Bearer 开头,则按原样传递。 |
baseUrl | 否 | 私有 API 源。默认 DEFAULT_BASE_URL — 'https://api.gstable.io/api/v1/'(内部在拼接路径前会去掉末尾斜杠)。 |
publicBaseUrl | 否 | 公开 API 源(无鉴权头)。默认 DEFAULT_PUBLIC_BASE_URL — 'https://api.gstable.io/public/api/v1'。供 client.capability.all() 使用。 |
fetchImpl | 否 | 注入 typeof fetch,用于测试、自定义 agent 或非标准运行时。默认 globalThis.fetch。 |
导出的常量
可对与 SDK 相同的默认值做日志或断言:
import { DEFAULT_BASE_URL, DEFAULT_PUBLIC_BASE_URL } from 'gstable-js';
环境变量(约定)
SDK 不会自动读取 GSTABLE_API_KEY。常见写法:
const client = new GStableClient({
apiKey: process.env.GSTABLE_API_KEY ?? '',
});
部署前校验非空;若 apiKey 缺失或仅空白,构造函数会抛出异常。
调试日志
当 GSTABLE_DEBUG 为 '1' 或 'true'(Node process.env)时,HTTP 层将每次请求以 JSON 写入 console.error:method、完整 URL、headers(含 Authorization)。生产环境请勿在共享日志中开启。
预发或自定义网关
将 baseUrl / publicBaseUrl 指向你的环境:
const client = new GStableClient({
apiKey: process.env.GSTABLE_API_KEY,
baseUrl: 'https://staging-api.example.com/api/v1/',
publicBaseUrl: 'https://staging-api.example.com/public/api/v1',
});
确保路径仍与环境暴露的路由一致(除非文档另有说明,否则与生产结构相同)。