lstuartfry
(Lukas Stuart-Fry)
1
大家好,
我在论坛上发现了几篇(有些旧的)文章,其中概述了 API 速率限制(例如:https://meta.discourse.org/t/global-rate-limits-and-throttling-in-discourse/78612)。我对此很感兴趣,因为在我们自定义网站的过程中,我们进行了许多与用户和主题相关的 API 调用,我希望确保将调用次数降到最低。
这些设置是否仍可通过管理面板进行配置?到目前为止,我还没有找到任何与 Discourse API 速率限制相关的内容。
如果不能,是否有办法在某个地方监控请求活动?
提前感谢!
2 个赞
blake
(Blake Erickson)
2
这些 API 速率限制设置不是通过管理面板配置的,但您会将其添加到托管 Discourse 站点的服务器上的 app.yml 文件中。因此,如果您是自托管的,则需要通过 SSH 登录到您的服务器进行更改。
3 个赞
lstuartfry
(Lukas Stuart-Fry)
3
@blake 感谢您的回复!我的团队实际上将依赖 Discourse 进行托管,所以我们没有任何自己的配置文件。如果我们选择这条路线,是否有办法查看或调整 API 限制?
blake
(Blake Erickson)
4

如果您使用的是企业版,我们可以为您调整其中一些限制,并提供一些 API 指导,以减少您的 API 使用量。
我们建议让您的应用程序处理 API 调用中的 429 错误,然后检查收到的 Retry-After 标头,这将告知您何时可以再次开始发出请求。
lstuartfry
(Lukas Stuart-Fry)
5
@blake 再次感谢你的信息!我认为我的团队很可能对 Discourse 当前的标准速率限制感到满意。你能分享一下这些限制是什么吗?我到目前为止一直找不到一份明确的列表。
lstuartfry
(Lukas Stuart-Fry)
7
@blake 再次感谢您的信息!这有点相关,但您是否知道何时可以在主题/组件级别添加序列化器自定义功能?在过去的一年里,我在这里和那里都看到过这个功能在本论坛上被提及,但我知道它还没有实现。
我之所以这样问,是因为我们目前在主题列表中按主题获取用户数据,随着我们平台的注册用户越来越多,这可能会累加。将用户模型中的某些数据添加到某些序列化器中,可以帮助减少我们目前不得不进行的 API 调用。
blake
(Blake Erickson)
8
据我所知,目前还没有时间表。
但是,我建议使用 data-explorer 插件来处理此类自定义数据请求。您可以创建自己的自定义 SQL 查询并保存它,以便为其分配一个 ID。然后,您可以调用该已保存查询的 API,它将执行该查询并在一请求中返回您想要的 JSON。