新闻

每个响应都带有配额响应头:调用之前就知道您的限额

大多数 API 都让您猜测自己的用量状况,直到出现故障为止。My Geocode 采用了不同的做法:每一个响应,无论来自哪个端点或哪个兼容主机,都附带一整套配额响应头,准确告诉您当前所处的位置。

X-Quota-LimitX-Quota-Used 给出调用密钥或网络的基本情况。X-Quota-Free-Remaining 显示每日免费配额还剩多少,X-Quota-Network-Used 反映同一连接上的任何地址或密钥已经消耗了多少按网络共享的免费配额。X-Credits-Remaining 为已超出免费档位且未使用 Unlimited 套餐的用户显示预付额度余额。X-Key-IPs-UsedX-Key-IPs-Limit 记录某个密钥已从多少个不同地址使用过,X-Quota-Reset 告诉您每日计数器何时重置。

这一点之所以重要,原因很简单:能够看到自身配额的脚本,可以围绕配额做出智能的行为。它可以在被拦截之前放慢速度,在额度不足时提醒开发者,或者自动从免费密钥切换到付费密钥,而不是先失败再做出反应。这些都不需要调用单独的用量端点,也不需要手动查看控制台。这些信息会随着您本来就请求的结果一起返回。

无论您使用的是我们的原生端点,还是十七个兼容主机中的某一个,都是如此。按 Google Maps Platform、Bing Maps REST Services 或 ipstack 调用格式构造的请求,除了返回与该服务商格式一致的响应体之外,依然会附带我们的配额响应头。更换服务商并不意味着失去这种可见性,而是在原本从未有过它的地方获得它。

每个密钥都有每日免费配额。超出后,请求会从预付额度中扣除,或由 Unlimited 套餐覆盖。每个响应都会在响应头中告诉您当前状态,这在单次调用中是件小事,但在流量繁忙的一整天里却真正有用。

对于构建一次性脚本以外任何东西的团队,我们建议从一开始就把这些响应头与您自己的请求日志一起记录下来。X-Quota-Free-Remaining 比预期下降得更快这样一个不起眼的趋势,在图表上发现要比在支持工单中发现代价低得多。每个响应头的完整说明及其触发条件记录在 /docs/rate-limits/,一般身份验证指南见 /docs/authentication/