アプリ内でセルフホスト型の Discourse インスタンスへのカスタムインテグレーションを構築しており、https://docs.discourse.org/#tag/Categories/operation/listCategoryTopics からの結果をフィルタリングして、最新およびトップのトピックを表示できるようにしたいと考えています。現在、ページあたり 30 件のインデックスにページネーションされています。
次のいずれかの対応が必要です。
- 返される 30 件のインデックスが最新またはトップのトピックになるように結果をフィルタリングする(理想)
- クライアント側でフィルタリング/ソートを実行するためにページネーション制限を増やす(理想ではないが機能する)
よろしくお願いいたします。
こんにちは。
お探しのものはこれだと思われます。
/c/{slug}/{id}/l/{filter}.json?{query}
ここで:
{filter} は次のいずれかです:
latest
unread
new
unseen
top
read
posted
bookmarks
{query} は(おそらく網羅的ではありませんが)次のようになります:
page=<int>
before=<timestamp>
bumped_before=<timestamp>
topic_ids=<id1[,id2, ..]>
order=<likes|op_likes|views|posts|activity|posters|category|created>
ascending=<true|false>
min_posts=<int>
max_posts=<int>
status=<open|closed|archived|listed|unlisted|deleted>
state=<muted|regular|normal|tracking|watching>
search=<term>
subset=<topics|replied>
tags=<tag1[,tag2,..]>
match_all_tags=<true|false>
no_subcategories=<true|false>
no_tags=<true|false>
exclude_tag=<tag>
APIで per_page を変更することはできないようです。
order を操作し、page でページネーションできます。次の使用するURLは、レスポンス例の下記にある more_topic_url を使用して知ることができます。
注目すべき点:Experimental topics list filter feature
お役に立てば幸いです!