Alguém sabe se há um guia ou exemplo disso em algum lugar, por favor?
Digamos, por exemplo, que eu use um componente de tema para criar uma coluna lateral. Como posso listar os 20 tópicos públicos mais recentes (ou, se for mais fácil, de categorias que eu liste na consulta) nessa coluna lateral/componente de tema?
Existem algumas maneiras de fazer isso. A mais simples é usar uma chamada AJAX ao endpoint da API do Rails que fornece os dados que você deseja exibir. Se você quiser os 20 tópicos mais recentes, talvez queira tentar /latest.json.
O desafio surge quando você precisa combinar informações de vários endpoints, pois nesse caso precisa aguardar que várias chamadas sejam concluídas, o que pode realmente prejudicar o desempenho no componente do tema.
Existe uma maneira fácil de simplesmente reutilizar os feeds/dados que o Discourse já fornece? (De modo que também respeitem as configurações do usuário).
Por exemplo, em uma coluna lateral, poderíamos ter:
Últimos 10 tópicos (feed da página Mais Recentes, mas que também respeita as categorias silenciadas)
Tópicos principais desta semana (de /top)
Tópicos principais deste mês
Tópicos principais deste ano
Usuários mais ativos deste mês (de /u?period=monthly)
Isso é realmente bastante fácil de fazer em outras plataformas de fórum e eu realmente sinto falta disso no Discourse
Você acha que isso seria mais ou menos o mesmo que apenas consultar o banco de dados com as queries que esses endpoints já executam? (Ou isso consumiria significativamente mais recursos, já que poderia ser equivalente a carregar 5 páginas adicionais — uma para cada endpoint?)
De qualquer forma, adoraria experimentar isso — há algum guia ou tutorial que mostre como buscar dados de um endpoint em um componente de tema? (Ou seria melhor/mais eficiente criar um plugin em vez disso?)
Sei como criar um componente de tema e um plugin ‘fictício’, mas não encontrei nenhum guia que mostre como buscar dados do banco de dados neles.