检索主题中的顶级回复

我有一个需求,需要获取某个主题下的所有一级回复。当我们创建新主题时,系统也会同时创建一个帖子。为了在该主题下创建一级回复,我调用了以下 API:

POST http://discourse-url/posts/
{
“raw”: “这是该主题下的一级回复”,
“topic_id”: 1234,
“reply_to_post_number”: null
}

现在,为了获取一级回复,我使用以下调用,其中 post_id 是该主题下创建的第一个帖子的 ID。该帖子的 post_number 为 1。

GET http://discourse-url/posts/{post_id}/replies.json

但返回的是一个空数组。这是可以理解的,因为 Discourse 将主题顶部的回复视为帖子而非回复。在 Discourse 的术语中,“回复”是针对帖子进行的,而“帖子”是针对主题进行的。

我找到了一个变通方法。如果我将 reply_to_post_number 设置为 1 而不是 null,那么获取回复的 API 调用也能正常工作。以下是示例请求:

POST http://discourse-url/posts/
{
“raw”: “这是该主题下的一级回复”,
“topic_id”: 1234,
“reply_to_post_number”: 1
}

现在,我可以通过以下 API 调用获取该主题的一级回复:

GET http://discourse-url/posts/{post_id}/replies.json

根据此处 帖子 vs 回复 vs 主题 的回答,我觉得我实际上对 Discourse 中的帖子结构进行了根本性的改变。

我的问题是:这种改变是否会破坏 Discourse 的其他功能?目前我尚未发现网站因此出现任何问题。但是,是否有我可能遗漏且需要特别注意的地方?

2 个赞

您能帮我了解一下,将 reply_to_post_number 从 null 改为 1 来把帖子转换为回复,会带来哪些副作用吗?