Здравствуйте
Я попытался использовать API для получения последних n сообщений с помощью
uri = URI('https://mydomain.com/forum/latest.json?ascending=false')
однако я заметил следующее:
невозможно получить URL каждого сообщения;
нельзя строго ограничить результат последними n сообщениями;
как ограничить возвращаемые поля? Например, сейчас я получаю все детали.
Есть какие-то идеи?
blake
(Blake Erickson)
09.Май.2024 16:57:51
2
Samir Sabri, пост:1, тема:307427:
Я пытался использовать API для получения последних n сообщений с помощью
Вы пытаетесь получить последние n сообщений или последние n тем?
/latest.json вернёт последние темы.
/posts.json вернёт последние сообщения из всех тем.
Samir Sabri, пост:1, тема:307427:
не удалось получить URL каждого сообщения
URL можно просто сформировать на основе результатов, используя topic_id или post_id.
Например, корректный URL для этой темы: https://meta.discourse.org/t/307427 , а для сообщения — https://meta.discourse.org/p/1514266 .
Samir Sabri, пост:1, тема:307427:
не удалось ограничить результат последними n сообщениями.
Нет способа изменить размер страницы по умолчанию, равный 30. Если вам действительно нужно меньше 30, вам придётся указать конкретные ID тем:
https://meta.discourse.org/latest.json?topic_ids[]=307427
Но для этого нужно заранее знать эти ID тем, что обычно не очень удобно. Если вам нужно больше 30, придётся делать несколько запросов и передавать параметр page.
https://meta.discourse.org/latest.json?page=1
Samir Sabri, пост:1, тема:307427:
как ограничить возвращаемые поля? Например: сейчас я получаю все детали.
Нельзя, вам придётся отфильтровать их самостоятельно из полученных результатов.
Это значение по умолчанию, поэтому указывать ascending=false не нужно, можно просто опустить этот параметр.