У меня есть требование: необходимо получать все ответы первого уровня, оставленные в теме. Когда мы создаём новую тему, это также создаёт пост. Чтобы создать ответ первого уровня в теме, я делаю следующий вызов API:
POST http://discourse-url/posts/
{
“raw”: “Это ответ первого уровня в теме”,
“topic_id”: 1234,
“reply_to_post_number”: null
}
Теперь, чтобы получить ответы первого уровня, я делаю следующий вызов, где post_id — это ID первого поста, созданного для темы. У этого поста post_number равен 1.
Но это возвращает пустой массив. Это понятно, так как Discourse воспринимает ответы верхнего уровня в теме как посты, а не как ответы. В терминологии Discourse «ответы» создаются на постах, а «посты» — в темах.
Я нашёл обходное решение. Вместо того чтобы передавать reply_to_post_number как null, если я передаю его как 1, вызов API для ответов также работает корректно. Ниже приведён пример запроса:
POST http://discourse-url/posts/
{
“raw”: “Это ответ первого уровня в теме”,
“topic_id”: 1234,
“reply_to_post_number”: 1
}
Теперь я могу получать ответы первого уровня для этой темы, делая следующий вызов API:
Исходя из ответа здесь Посты против ответов против тем, я чувствую, что внес фундаментальное изменение в структуру постов в Discourse.
Мой вопрос: может ли это изменение сломать какую-либо другую функциональность в Discourse? В настоящее время я не вижу никаких проблем на сайте с этим изменением. Но есть ли что-то, что я мог упустить и о чём следует быть осторожным?