Obtener datos de terceros para la lista de temas

Hola @Discourse,

Quiero renderizar datos de APIs de terceros bajo el título del tema para cada uno de ellos en la página de lista de temas. ¿Alguien puede guiarme sobre cómo puedo renderizar datos utilizando las mejores prácticas?

Como no sé mucho sobre la personalización en Discourse. ¡Cualquier consejo sería de gran ayuda y apreciado!

¿Alguien puede ayudarme a resolver este problema?

Si usas el componente temático de los outlets de plugins, te mostrará qué outlet usar para construir tu personalización.

suena como que quieres el outlet after-topic-list-item.

Enlaces a más temas de desarrollo de componentes temáticos

Developing Discourse Themes & Theme Components

Theme Developer Quick Reference Guide

Beginner's guide to using Discourse Themes

Developing Discourse Plugins - Part 1 - Create a basic plugin

Si buscas ayuda de desarrollo para crear esta personalización, te sugiero usar la categoría Marketplace. :slight_smile:

1 me gusta

Gracias @Lilly. En realidad, quiero mostrar algunos datos de una API de terceros para cada tema y para eso estoy buscando una manera de llamar a la API de terceros cuando los datos se cargan en la página de lista.

Entonces, cuando la página se carga, debería llamar a la API y luego quiero renderizar los datos. En este momento, estoy recopilando todos los datos de la lista y llamando a la API de terceros, y cualquier dato que llegue simplemente lo agrego al DOM. Pero quiero obtener los datos con la carga diferida de la página de lista de temas.

Esta es generalmente una mala idea. Si el host que sirve la API es lento, tu foro será lento. Si el host que sirve la API está caído, tu foro estará caído. Si tu foro está abrumado, la API estará abrumada.
Deberías cargar los datos de forma asíncrona, por ejemplo, en un trabajo de sidekiq, y almacenarlos con el tema.

1 me gusta

¡Gracias @RGJ por tu mensaje!

Sé que es una mala idea, pero soy nuevo en Discourse y no sabía mucho al respecto. Ahora, buscaré el trabajo de Sidekiq como sugieres.

Tengo una pregunta más. ¿El trabajo de Sidekiq podrá determinar si hay nuevos datos que llegan para la página de la lista de temas? ¿O tengo que hacer algo diferente para que el trabajo sepa que la página de la lista carga más datos?

¡Gracias!

El trabajo de Sidekiq no sabrá si una lista de páginas carga más datos. Es independiente.

El trabajo de Sidekiq cargará los datos periódicamente usando la API y los almacenará junto con el tema.

Luego, cuando se cargue la lista de temas, se recuperarán los datos almacenados. Considéralo un mecanismo de caché.

3 Me gusta

Entendido.

¡Muchas gracias @RGJ!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.