速率限制控制您可以在特定时间窗口内对端点发出的请求数量。这些限制有助于确保服务稳定性并保护 Roblox 资源免受滥用。
发现
确定速率限制有两种方式:参考文档和响应头。
文档页面
公共速率限制可以在每个端点的文档页面的 限制 部分找到。在发出请求之前,请查看这些部分以了解适用的速率限制。
响应头
许多 API 响应包含提供您当前速率限制状态信息的头部。
| 头部 | 描述 |
|---|---|
| x-ratelimit-limit | 在速率限制窗口内允许的请求总数。可能包括不同时间窗口的多个限制值。 |
| x-ratelimit-remaining | 您可以使用当前身份验证仍可以发出的请求数量。当其达到 0 时,您将收到 HTTP 429 响应。 |
| x-ratelimit-reset | 您的速率限制配额重置为全限额之前剩余的秒数。 |
以下是 API 响应中的速率限制头部示例:
x-ratelimit-limit: 1000, 1000;w=60, 1000;w=60x-ratelimit-remaining: 998x-ratelimit-reset: 20
在此示例中:
- 您的总限制中剩余 998 个请求。
- 您的配额将在 20 秒后重置。
行为
速率限制行为因身份验证方法和请求来源而异,包括您是否从 Roblox 游戏内部发出请求。
API 密钥
针对 API 密钥的速率限制适用于每个所有者的所有 API 密钥,所有者可以是用户或组。这些限制无论请求来自何处(无论是来自 HttpService、Web 应用程序还是其他来源)均一致执行。
使用 HttpService 的游戏内
在使用 HttpService 调用端点时,请求也会计入每个 Roblox 游戏服务器每分钟 500 个 HTTP 请求的固定限制。有关更多详细信息,请参见 游戏内 HTTP 请求。
OAuth 2.0
OAuth 2.0 的速率限制按访问令牌应用。由于每个访问令牌代表用户和应用的独特组合,因此使用您应用的每个用户都会获得自己独立的速率限制配额。
处理速率限制
编写代码以预期和处理由于记录的限制、滥用防范或高负载场景而导致的 HTTP 429(请求过多)响应。当限速时,请检查 retry-after 响应头作为何时重试的指南。如果没有 retry-after 响应头,则实施指数退避重试策略。