Пагинация API последних тем

Всем привет!

Аналогично этой теме, я ищу правильный способ реализации пагинации для эндпоинта /latest.json (Topics), в частности, чтобы знать, когда это последняя страница.

Я выяснил, что когда есть ещё результаты для получения, в ответе содержится поле "more_topics_url": "/latest?page=X" для следующей страницы. Однако, судя по моим тестам, похоже, что даже когда результатов больше нет, в этом поле всё равно указывается следующая страница.

Есть ли правильный способ узнать, когда мы достигли последней страницы?

Заранее спасибо!

Я не могу воспроизвести это.

Например, вы можете запросить

https://meta.discourse.org/c/site-feedback/blog/l/latest.json?page=1

который содержит 30 тем и more_topics_url со значением "/c/site-feedback/blog/l/latest?page=2".

Затем вы делаете запрос по этой ссылке и получаете ещё 25 тем, но поле more_topics_url отсутствует, так как это конец списка.

Спасибо за такой быстрый ответ и за проверку!

Вы правы. Я экспериментировал с настройками per_page в своей среде разработки, пытаясь избежать создания 30+ тем для тестирования, и наткнулся на этот метод. Однако его изменение там, похоже, приводит к упомянутому побочному эффекту, хотя количество возвращаемых результатов соответствует установленному значению.

Кажется, что передача параметра ?per_page=X не влияет на этот эндпоинт (следуя вашему примеру: https://meta.discourse.org/c/site-feedback/blog/l/latest.json?page=1&per_page=5 — всё равно возвращается 30 строк). Есть ли корректный способ изменить эту настройку?

Заранее ещё раз спасибо!

Кто-нибудь решил эту проблему?

Также заинтересован в этой функции per_page.