TPWallet API的速率限制说明

2025-01-11

TPWallet 提供功能强大的 API 接口,方便开发者集成和扩展 TPWallet 的服务。然而,为了确保平台的稳定性和公平使用,TPWallet 对其 API 实施了速率限制(Rate Limiting)。以下是 TPWallet API 速率限制的详细说明:


1. 速率限制概述

速率限制旨在控制客户端在一定时间内发送的请求数量,以防止滥用和保护服务器资源。TPWallet 的 API 速率限制基于以下几个关键参数:


请求数(Requests):在特定时间窗口内允许的最大请求数量。

时间窗口(Time Window):速率限制的时间范围,通常以秒、分钟或小时为单位。

速率限制头(Rate Limit Headers):每个 API 响应中包含的头信息,用于告知客户端当前的速率限制状态。

2. 速率限制政策

TPWallet 的 API 速率限制分为不同的访问级别,具体如下:


a. 公共 API

公共 API 适用于不需要身份验证的请求,如获取市场行情、公共区块信息等。


限制:每分钟最多 60 个请求。

时间窗口:60 秒。

b. 认证 API

认证 API 适用于需要用户身份验证的请求,如管理钱包、执行交易、查询账户信息等。


限制:每分钟最多 120 个请求。

时间窗口:60 秒。

c. 高级访问级别

对于需要更高请求频率的企业客户或高级开发者,TPWallet 提供定制化的速率限制方案。


限制:根据合同或服务协议定制,常见的如每分钟 1000 个请求。

时间窗口:60 秒。

3. 速率限制头信息

每个 API 响应都会包含以下速率限制相关的头信息,帮助客户端了解当前的限制状态:


X-Rate-Limit-Limit:每个时间窗口允许的最大请求数。

X-Rate-Limit-Remaining:当前时间窗口内剩余的可用请求数。

X-Rate-Limit-Reset:时间窗口重置的 UNIX 时间戳(秒)。

示例

http

复制代码

HTTP/1.1 200 OK

Content-Type: application/json

X-Rate-Limit-Limit: 120

X-Rate-Limit-Remaining: 115

X-Rate-Limit-Reset: 1672531199


{

  "data": { ... }

}

4. 超出速率限制的处理

当客户端超过速率限制时,TPWallet 的 API 将返回以下响应:


HTTP 状态码:429 Too Many Requests

响应头:

Retry-After:建议客户端等待的秒数后再重试请求。

响应体:

json

复制代码

{

  "error": {

    "code": 429,

    "message": "请求过于频繁,请稍后重试。",

    "retry_after": 30

  }

}

处理建议

监控速率限制头:客户端应在每次请求后检查 X-Rate-Limit-Remaining 和 X-Rate-Limit-Reset 头信息,动态调整请求频率。

实现指数退避策略:在收到 429 错误时,客户端应根据 Retry-After 头建议的时间进行等待,并逐步增加重试间隔,避免频繁重试导致更高的延迟。

优化请求:合并多个请求为一个,减少不必要的 API 调用。例如,批量查询数据而不是逐一请求。

5. 如何提升速率限制

对于需要更高请求频率的开发者或企业客户,TPWallet 提供以下几种方式来提升速率限制:


a. 升级 API 访问级别

联系 TPWallet 的销售或技术支持团队,申请升级 API 访问级别。根据需求,TPWallet 可提供定制化的速率限制方案,满足高流量应用的需求。


b. 使用 Webhooks 和事件订阅

通过订阅 Webhooks,客户端可以接收 TPWallet 服务器主动推送的事件通知,减少轮询请求,降低 API 请求频率。


c. 缓存策略

在客户端实现数据缓存机制,减少重复请求。例如,对于不频繁变化的数据,可以设置合理的缓存时间,避免频繁调用 API 获取相同数据。

image.png

6. 常见问题

a. 为什么我的请求被限制了?

可能是因为在短时间内发送了过多请求,超过了当前访问级别的速率限制。请检查 X-Rate-Limit-Remaining 和 X-Rate-Limit-Reset 头信息,合理安排请求频率。


b. 如何查看我的速率限制使用情况?

每个 API 响应都会包含速率限制相关的头信息,如 X-Rate-Limit-Limit、X-Rate-Limit-Remaining 和 X-Rate-Limit-Reset。通过这些信息,您可以实时监控和调整请求频率。


c. 我需要更高的速率限制,应该怎么办?

请联系 TPWallet 的技术支持或销售团队,说明您的需求和使用场景,TPWallet 将根据具体情况提供定制化的速率限制方案。


7. 最佳实践

合理规划请求频率:根据业务需求,合理安排 API 请求的时间和频率,避免短时间内的高频请求。

实现速率限制监控:在客户端集成速率限制头信息的监控,动态调整请求行为,确保在限制范围内操作。

优化 API 使用:尽量使用批量请求和数据缓存,减少不必要的 API 调用,提高应用的效率和响应速度。

处理错误响应:实现对 429 Too Many Requests 错误的合理处理机制,如指数退避和重试策略,确保应用的稳定性和用户体验。


TAG: TPWallet API, tpwallet官方接口, tpwallet访问级别, tpwallet权限设置,