速率限制
为了保证 Genstore 平台的稳定性,我们对 REST API 实施了速率限制。通过多种策略确保限制的执行,开发者在开发应用时需了解这些限制,并采用标准技术手段规避超限。
WARNING
请严格遵守 API 速率限制,确保服务的可靠性,严格禁止在面向客户的应用中使用 API,以免因速率限制导致服务中断。
速率限制策略
下表概述了各类 API 的速率限制策略,包括标准、高级和企业级限制:
API 类型 | 限制方式 | 标准限制策略 |
---|---|---|
REST API | 请求次数限制 | 桶大小 40; 恢复速率:2 / 秒 |
速率限制
我们使用令牌桶算法来管理 API 请求速率,具体机制如下:
- 初始桶大小:每个应用在每个店铺的令牌桶起始含有 40 个令牌。
- 令牌消耗:每发出一个请求,将消耗一个令牌。
- 令牌恢复:当令牌数量少于 40 个时,系统以每秒 2 个令牌的速率自动补充,直至令牌桶再次满额。
- 处理超限请求:若令牌桶中令牌耗尽至 0 个,再有新的请求到来时,则返回状态码 429(请求过多),以提示速率限制已达上限。
响应头信息
开发者可通过响应头中的 X-Genstore-Shop-Api-Rate-Limit
字段检查当前对某店铺的请求次数:
bash
X-Genstore-Shop-Api-Rate-Limit: 30/40
在此示例中,已发送 30 个请求,令牌桶中剩余 10 个令牌(40-30=10)。如果不进行任何新的请求,令牌桶将在足够的时间内逐渐补满,直到恢复到满容量状态(40/40)。假设恢复速率为每秒 2 个令牌,那么从 10/40 恢复到 40/40 需要大约 15 秒的时间。