Мы разрабатываем пользовательскую интеграцию с нашей саморазмещённой инстанцией 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>
Похоже, что изменить per_page через API нельзя.
Вы можете использовать order и выполнять пагинацию с помощью page. Следующий URL для использования можно узнать по полю more_topic_url, см. пример ответа ниже:
Стоит отметить: Topics list filter feature
Надеюсь, это поможет!