获取话题列表的第三方数据

您好 @Discourse

我想在主题列表页面的每个主题的标题下方渲染来自第三方 API 的数据。有人能指导我如何使用最佳实践来渲染数据吗?

我对 Discourse 的自定义了解不多。任何建议都将非常有帮助,不胜感激!

请问有人能帮我解决这个问题吗?

如果您使用插件出口主题组件,它将向您展示用于构建自定义项的出口。

听起来您想要 after-topic-list-item 出口。

更多主题组件开发主题链接

Developing Discourse Themes & Theme Components

Theme Developer Quick Reference Guide

Beginner's guide to using Discourse Themes

Developing Discourse Plugins - Part 1 - Create a basic plugin

如果您正在寻找有关构建此自定义项的开发帮助,我建议使用 Marketplace 类别。 :slight_smile:

1 个赞

感谢 @Lilly。实际上,我想为每个主题显示来自第三方 API 的一些数据,为此我正在寻找一种在列表页面加载数据时调用第三方 API 的方法。

因此,当页面加载时,我应该调用 API,然后我想渲染数据。目前,我正在收集所有列表数据并调用第三方 API,无论返回什么数据,我都会将其附加到 DOM。但是我想在主题列表页面的延迟加载时获取数据。

这通常是个坏主意。如果托管API的主机很慢,您的论坛也会很慢。如果托管API的主机宕机,您的论坛也会宕机。如果您的论坛不堪重负,API也会不堪重负。

您应该异步加载数据,例如在sidekiq作业中,并将其与主题一起存储。

1 个赞

感谢 @RGJ 发送消息!

我知道这是个坏主意,但我刚接触 discourse,不太了解它。现在,我会按照你的建议查找 sidekiq 作业。

我还有一个问题。sidekiq 作业能否判断主题列表页是否有新数据进入?或者我是否需要做些不同的事情来让作业知道列表页加载更多数据?

谢谢!

Sidekiq 作业将不知道页面列表是否加载了更多数据。它是独立的。

您将让 Sidekiq 作业定期使用 API 加载数据,并将其与主题一起存储。

然后,在加载主题列表时,将检索存储的数据。将其视为一种缓存机制。

3 个赞

好的。

非常感谢您,@RGJ

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.