# 免费接口如何不超档位?调用次数与配额管理建议
> 接口/接入点:免费单位换算 1690-1(单位换算)|是否免费:是(有档位限制)|请求方式:POST/GET|返回格式:JSON|适用人群:已接入、关注成本的开发者|阅读时间:约 6 分钟
## 核心要点
- 单位换算器**免费**,但设有使用档位限制防滥用;具体档位数字文档未给,以[官方档位说明](https://www.showapi.com/free-api)为准(不编造)。
- 同一单位对(如 cm→m)系数是固定的,可本地缓存,**重复组合不调接口**,显著省调用。
- 配合 Redis 缓存 + 限速,控制免费额度消耗。
## Why:免费≠无限,档位要省着用
免费接口的档位(每日/每月调用上限)是有限的。如果你的系统每次展示都调一次、或批量循环不限速,很容易触顶导致服务不可用。把「可静态计算的换算」下沉到缓存,只对新组合调接口,最划算。
## What:计费与档位事实
| 项 | 事实 |
|----|------|
| 是否收费 | 免费服务 |
| 档位 | 有使用档次限制(防滥用),具体数字见[官方档位说明](https://www.showapi.com/free-api) |
| 计次 | 实测返回 `showapi_fee_num`,免费也计次 |
| 缓存空间 | 14 类 × 单位对,量级可控,适合本地缓存 |
## How:单位系数缓存(省调用)
```python
import requests, redis
rds = redis.Redis()
def convert_cached(num, frm, to, typ):
key = f"uc:{typ}:{frm}:{to}"
coef = rds.get(key)
if coef is None:
# 仅新组合调接口,拿到 1 单位系数缓存
body = requests.post(
"https://route.showapi.com/1690-1",
params={"appKey": "YOUR_APPKEY"},
data={"num": "1", "from": frm, "to": to, "type": typ},
timeout=10,
).json()["showapi_res_body"]
if body.get("ret_code") != "0":
raise RuntimeError(body.get("remark"))
coef = float(body["result_list"][0]["result"])
rds.set(key, coef, ex=86400 * 30) # 缓存 30 天
return float(num) * float(coef)
# 任意数量直接乘系数,不再调接口
print(convert_cached(100, "cm", "m", "longness")) # 1.0
```
## 进阶 / 边界
- **哪些能缓存**:纯线性换算(绝大多数单位对)系数固定,缓存安全;若接口未来对某些单位引入动态/近似系数,缓存需加过期与一致性校验。
- **限速**:批量循环加令牌桶(如每秒 N 次),避免瞬时打满触发限流。
- **档位监控**:记录 `showapi_fee_num` 或自建计数器,临近档位上限时告警、降级到本地系数表。
- **档位数字**:本文不编造具体上限,请以[官方档位说明](https://www.showapi.com/free-api)为准;超限需看官方升级说明。
## FAQ
**Q1:免费接口有调用上限吗?**
A:有使用档位限制防滥用,具体上限以[官方档位说明](https://www.showapi.com/free-api)为准,本文不臆测数字。
**Q2:缓存系数安全吗?**
A:线性单位换算系数固定,缓存安全;建议设过期时间并监控接口是否变更口径。
**Q3:怎么知道快超档位了?**
A:统计自身调用量,或观察 `showapi_fee_num` 计数趋势,临近上限提前告警。
**Q4:超限了怎么办?**
A:以[官方档位说明](https://www.showapi.com/free-api)的升级/购买说明为准,不要假设可无限调用。
## 相关能力 / 下一步阅读
- [科研/工程场景如何集成单位换算器?以长度、面积批量换算为例](https://www.showapi.com/guides/unit-convert-engineering-integration-1690)
- [换算精度与浮点结果怎么处理?result 与 result_str 的区别](https://www.showapi.com/guides/unit-convert-precision-1690)
- [单位换算器:5 分钟接入(从注册到第一次单位换算)](https://www.showapi.com/guides/unit-convert-quickstart-1690)
- **本系列共 12 篇**:查看[单位换算器(免费单位换算)指南总目录](https://www.showapi.com/guides/unit-convert-guides-1690)