API速率限制

Hey all,
I’ve come across several (somewhat-old) articles on this forum that outline API rate limits (ex: Global rate limits and throttling in Discourse). I’m interested in this because, during the customization of our site, we’re making several API calls related to users and topics, and I’d like to ensure we keep the calls to a minimum.

Are these settings still configurable via the Admin panel? I haven’t come across anything thus far that relates to the Discourse API rate limits.

If not, is there a way to monitor the request activity somewhere?

Thank you in advance!

2 个赞

这些 API 速率限制设置不是通过管理面板配置的,但您会将其添加到托管 Discourse 站点的服务器上的 app.yml 文件中。因此,如果您是自托管的,则需要通过 SSH 登录到您的服务器进行更改。

3 个赞

@blake 感谢您的回复!我的团队实际上将依赖 Discourse 进行托管,所以我们没有任何自己的配置文件。如果我们选择这条路线,是否有办法查看或调整 API 限制?

:+1:

如果您使用的是企业版,我们可以为您调整其中一些限制,并提供一些 API 指导,以减少您的 API 使用量。

我们建议让您的应用程序处理 API 调用中的 429 错误,然后检查收到的 Retry-After 标头,这将告知您何时可以再次开始发出请求。

@blake 再次感谢你的信息!我认为我的团队很可能对 Discourse 当前的标准速率限制感到满意。你能分享一下这些限制是什么吗?我到目前为止一直找不到一份明确的列表。

是的,这里列出了专业版/商业版计划的默认限制。

@blake 再次感谢您的信息!这有点相关,但您是否知道何时可以在主题/组件级别添加序列化器自定义功能?在过去的一年里,我在这里和那里都看到过这个功能在本论坛上被提及,但我知道它还没有实现。

我之所以这样问,是因为我们目前在主题列表中按主题获取用户数据,随着我们平台的注册用户越来越多,这可能会累加。将用户模型中的某些数据添加到某些序列化器中,可以帮助减少我们目前不得不进行的 API 调用。

据我所知,目前还没有时间表。

但是,我建议使用 data-explorer 插件来处理此类自定义数据请求。您可以创建自己的自定义 SQL 查询并保存它,以便为其分配一个 ID。然后,您可以调用该已保存查询的 API,它将执行该查询并在一请求中返回您想要的 JSON。