Topic API liefert ständig falsche Beiträge - immer um 5 daneben

/t/slug/123.json?post_number=10 erhält den 5. Beitrag. /t/slug/123.json?post_number=50 erhält den 45. Beitrag usw. Es ist durchgehend um 5 versetzt. Wenn Sie alle Beiträge erhalten möchten, müssen Sie Pagination verwenden, und wenn Sie dies nicht berücksichtigen, erhalten Sie eine inkorrekte Liste.

Ich kann nur vermuten, dass dies gemacht wurde, um einige vorherige Beiträge zum Kontext einzuschließen. Falls ja, sollte das meiner Meinung nach in der Benutzeroberfläche und nicht in der API erfolgen.

Dieser Endpunkt verspricht, Informationen einschließlich des angegebenen Beitrags zurückzugeben, zum Beispiel:

○ → curl -s 'https://meta.discourse.org/t/fkb-pro-social-theme/234323.json?post_number=40' | jq .post_stream.posts[].post_number
33
34
35
36
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

Als Single-Page-Anwendung nutzt Discourse seine API effizient, um den Aufwand zu minimieren. Es ist nicht sinnvoll, einen API-Aufruf pro Beitrag zu tätigen; das würde die Menge an Hin- und Her-Kommunikation zwischen Client und Server massiv aufblähen.

Es ist trivial, den erwarteten Beitrag aus dem Ergebnis auszuwählen. Wie oben, nur den gekochten Inhalt von Beitrag 40 abrufen:

○ → curl -s 'https://meta.discourse.org/t/fkb-pro-social-theme/234323.json?post_number=40' | jq -r '.post_stream.posts[] | select(.post_number == 40) | .cooked'

<p>Hi Tiago,</p>
<p>Können Sie das bitte ein wenig verdeutlichen? Einige Screenshots, Ihr tatsächlicher Code und wo Ihre Anzeige erscheint, wären sehr hilfreich. Vielen Dank <img src="https://emoji.discourse-cdn.com/twitter/slightly_smiling_face.png?v=12" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_face:" loading="lazy" width="20" height="20"></p>

Oder, wenn Sie unbedingt Informationen nur über den einzelnen Beitrag zurückgeben möchten, den Sie abfragen, können Sie eine Data Explorer-Abfrage erstellen, die nur das tut.

1 „Gefällt mir“

ok, aber wo ist das dokumentiert?

Ich bin nicht gegen Paginierung.

Sie können die API-Dokumentation hier einsehen: https://docs.discourse.org/#tag/Topics/operation/getSpecificPostsFromTopic

1 „Gefällt mir“