我可以使用 JSON API 而不是构建插件吗?

我正在尝试进行一些自定义(如此处此处所述),这些操作似乎需要对 Ember 和 Rails 有扎实的理解,同时还需要了解 Discourse 底层代码库是如何协同工作的。

因此,进展缓慢(我更熟悉 Angular 和 JavaScript,对 Discourse 尚属新手),所以我正在寻找加快这些自定义功能上线的方法。

那么,问题来了:与其创建一个操纵 Discourse 模板的插件,我能否通过 JSON API 实现相同的结果?

我认为,熟练掌握 API 比深入理解 Ember 和 Discourse 代码库更高效,并且可以使用纯 JavaScript 或 jQuery 等语言来实现。

我认为答案是肯定的。正如 团队 所说,Discourse 能做的任何事都可以通过 API 完成。

我假设这是可行的,但提出这个问题的原因是:JSON API 的典型使用场景是一个独立的应用程序希望与 Discourse 应用进行交互。而在我的情况下,将是 Discourse 应用调用其自身的 API。

例如,我之前曾询问过如何在群组索引页面上获取并显示每个群组的 群组所有者。通常情况下,你会为此构建一个插件。

而在我的方案中,我会这样做——在我的自定义仪表盘的 <head> 部分——在群组索引页面加载时调用一个 AJAX 函数,发送 API 请求以获取每个群组的群组所有者,然后将这些信息插入到每个群组列表中。

这样做可行吗?由于请求来自应用本身,我是否需要为此生成一个 API 密钥?

2 个赞

问题在于,如果你想存储_一种新类型的数据_,就需要一个插件。服务器需要知道将数据存储在哪里、可接受的格式是什么、谁有权查看数据以及谁有权修改数据。


群组所有者的身份是公开可用的,因此主题组件可以加载它们并在群组索引页面上显示——虽然速度较慢。

至于分类特色主题,实际上有一些主题和插件使用标签来实现该功能。你看过这些吗?

5 个赞

好的。我可能并不需要存储一种全新的数据类型,而是会处理自定义字段,遵循现有的自定义字段格式。

我之前没见到过用于在分类中突出显示主题的插件。对我来说,关键是让各分类的版主能够选择这些主题。我会去查看一下。

关于使用 API 来显示分类所有者以及展示我从 API 获取的其他信息:如果它的速度比正常的构建过程稍慢,那是合理的,但我希望这种方法不会太慢(我认为它应该能像那些通常从 API 获取信息来填充数据的网站一样正常工作)。

1 个赞

你只能在插件中声明新的自定义字段(并进行序列化)。

2 个赞