Ich habe eine Anforderung, bei der alle Erstantworten auf ein Thema abgerufen werden müssen. Wenn wir ein neues Thema erstellen, wird dabei auch ein Beitrag angelegt. Um eine Erstantwort auf das Thema zu erstellen, führe ich den folgenden API-Aufruf durch:
POST http://discourse-url/posts/
{
“raw”: “Dies ist eine Erstantwort auf ein Thema”,
“topic_id”: 1234,
“reply_to_post_number”: null
}
Um nun die Erstantworten abzurufen, führe ich den folgenden Aufruf mit post_id als ID des ersten Beitrags durch, der für das Thema erstellt wurde. Dieser Beitrag hat die post_number 1.
Dies gibt jedoch ein leeres Array zurück. Das ist nachvollziehbar, da Discourse Antworten auf der Ebene des Themas als Beiträge und nicht als Antworten behandelt. In der Discourse-Terminologie werden „Antworten" auf Beiträge und „Beiträge" auf Themen erstellt.
Ich habe eine Umgehungslösung dafür gefunden. Anstatt reply_to_post_number als null zu senden, sende ich es als 1. Dann funktioniert der API-Aufruf für Antworten ebenfalls einwandfrei. Hier ist die Beispielanfrage:
POST http://discourse-url/posts/
{
“raw”: “Dies ist eine Erstantwort auf ein Thema”,
“topic_id”: 1234,
“reply_to_post_number”: 1
}
Nun kann ich die Erstantworten für dieses Thema durch den folgenden API-Aufruf abrufen:
Angesichts der Antwort hier Posts vs Replies vs Topic habe ich das Gefühl, dass ich die Struktur der Beiträge in Discourse grundlegend verändert habe.
Meine Frage lautet: Kann diese Änderung andere Funktionen in Discourse beeinträchtigen? Aktuell sehe ich auf der Website keine Probleme mit dieser Änderung. Gibt es jedoch etwas, das ich übersehen habe und worauf ich achten sollte?