/t/slug/123.json?post_number=10 récupère le 5ème message. /t/slug/123.json?post_number=50 récupère le 45ème message, etc. Il y a une décalage constant de 5. Si vous souhaitez obtenir tous les messages, vous devez utiliser la pagination, et à moins d’en tenir compte, vous aurez une liste incorrecte.
Je ne peux que supposer que cela a été fait pour inclure quelques messages précédents pour le contexte. Si c’est le cas, à mon avis, cela devrait être fait dans l’interface utilisateur, pas dans l’API.
En tant qu’application monopage, Discourse utilise son API efficacement pour minimiser le travail. Il n’est pas raisonnable de faire un appel API par message ; cela augmenterait considérablement la quantité d’allers-retours entre le client et le serveur.
Il est trivial de sélectionner le message attendu dans le résultat. Comme ci-dessus, pour obtenir uniquement le contenu cuit du message 40 :
○ → 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>Can you please clarify it a little bit? Some screenshots, your actual code and where is your advert appear would be very helpful. Thank you <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>
Ou, si vous voulez absolument renvoyer des informations sur un seul message que vous interrogez, vous êtes libre de faire une requête Data Explorer qui ne fait que cela.