Obtenez uniquement les publications de premier niveau dans un sujet via l'API Discourse

Je souhaiterais pouvoir obtenir les 20 publications les plus récentes de niveau supérieur sur un sujet, sans avoir à re-télécharger et filtrer récursivement les réponses aux publications jusqu’à atteindre 20. Existe-t-il un filtre pour cela et l’aurais-je simplement manqué quelque part dans l’API ?

Pour l’instant, il semble que le tableau stream dans la réponse inclue les réponses aux publications par numéro de publication. Ainsi, si j’ai 4 publications [1, 2, 3, 4] et que je publie une réponse à la publication 1, le stream sera désormais [1, 2, 3, 4, 5], et la seule façon de savoir que 5 est une réponse à 1 est d’examiner la publication elle-même, de trouver "reply_to_post_number" => 1 et de la filtrer. Est-ce que je manque quelque chose ?

1 « J'aime »

That is correct. There is not a filter that can be added to the topic endpoint to get what you are after. However we do have the

which you could use to write a sql query to get what you are after. You can then save that query and hit the api endpoint for the saved query and pass it a topic_id as a param.

2 « J'aime »

There isn’t a real way to get what you actually want out of this, because the metadata is messy, and people are messy and don’t really care about your analytics too much :wink:

2 « J'aime »

Thanks, I will give this a shot.

Nous avons maintenant le paramètre de requête filter_top_level_replies=true qui s’en chargera pour vous.

Voici un exemple ici sur meta https://meta.discourse.org/t/linkify-words-in-post/82193.json?filter_top_level_replies=true