Je travaille sur https://mentionme.app et je souhaite rassembler le contenu le plus récent provenant de forums Discourse accessibles publiquement. Pour cela, j’ai choisi le point de terminaison API /posts.json.
J’ai remarqué que ce point de terminaison renvoie un nombre d’éléments apparemment aléatoire. La documentation indique qu’il retournera les 50 derniers messages, mais en y regardant de plus près (par exemple https://meta.discourse.org/posts.json), nous constatons que, plutôt que les 50 derniers messages, nous voyons des messages dont les IDs varient de max-50 à max, et certains sont manquants.
Je suppose que le fait qu’il n’y ait pas 50 messages dans ce point de terminaison est une imperfection de l’API — ai-je raison ?
Je suppose que les IDs de messages sont attribués à partir d’un plus grand ensemble d’IDs qui inclut d’autres éléments (des IDs d’utilisateurs ?) et que je ne devrais pas m’en inquiéter.
Pourriez-vous s’il vous plaît dissiper mes inquiétudes ?
En particulier, pour certaines valeurs, la liste est vide, par exemple : https://meta.discourse.org/posts.json?before=1234. Que dois-je faire si une liste sans paramètre “before” (“posts.json”) renvoie une liste vide et que je ne parviens pas à connaître l’ID maximal du message pour commencer ?
Certaines publications se trouvent dans des catégories protégées que vous ne pouvez pas voir, et d’autres sont dans des messages privés et ne sont pas répertoriées dans le point de terminaison, qui liste les dernières publications des sujets que vous pouvez lire.
Par exemple, actuellement, cette publication a l’identifiant 621820 et la suivante est 621818 par @gerhard. Celle qui manque est 621819, qui est un message privé, c’est pourquoi vous ne pouvez pas la voir.
Merci pour l’explication, c’est maintenant clair. Je parcours actuellement plusieurs forums Discourse et, jusqu’à présent, j’ai rencontré ce problème en production une fois (posts.json sans le paramètre “before” renvoie une liste vide). Ce n’est pas la fin du monde, mais c’est quelque chose à garder à l’esprit.