成本控制
本文介绍如何有效控制 API 使用成本。
成本构成
API 调用成本 = 调用次数 × 单价
不同接口有不同的计费标准,详见 产品定价。
优化策略
1. 缓存查询结果
对于变化不频繁的数据,缓存查询结果避免重复调用:
// 企业工商信息通常不会频繁变化
const CACHE_DURATION = 24 * 60 * 60 * 1000; // 24小时
async function getCompanyInfo(companyName) {
const cacheKey = `company:${companyName}`;
const cached = await redis.get(cacheKey);
if (cached) {
return JSON.parse(cached);
}
const result = await api.enterprise.info(companyName);
await redis.setex(cacheKey, CACHE_DURATION, JSON.stringify(result));
return result;
}
2. 批量查询
使用批量接口替代单条查询:
// ❌ 不推荐:多次单条查询
for (const item of items) {
await api.verify(item); // N 次计费
}
// ✅ 推荐:批量查询
await api.batchVerify(items); // 1 次计费(或更优惠的批量价格)
3. 按需查询
只查询需要的数据维度:
# 完整报告(费用较高)
POST /v1/enterprise/report?type=comprehensive
# 基础信息(费用较低)
POST /v1/enterprise/report?type=basic
4. 预检查
在调用付费接口前,先用免费/低价接口预筛选:
// 先用低成本接口判断
const exists = await api.enterprise.exists(companyName);
if (exists) {
// 再调用高成本接口
const detail = await api.enterprise.detail(companyName);
}
用量监控
设置预警
在控制台设置用量预警,避免超支:
- 日调用量预警
- 月费用预警
- 套餐余量预警
查看账单
定期查看用量明细,分析成本构成:
GET /v1/billing/usage?startDate=2024-01-01&endDate=2024-01-31
套餐选择
| 使用场景 | 推荐套餐 |
|---|---|
| 低频调用 | 按量付费 |
| 稳定用量 | 月度套餐 |
| 大客户 | 年度协议价 |
成本报告
月度成本报告示例:
| 接口类型 | 调用次数 | 单价 | 费用 |
|---|---|---|---|
| 身份验证 | 10,000 | ¥0.10 | ¥1,000 |
| 企业查询 | 500 | ¥1.00 | ¥500 |
| 合计 | ¥1,500 |