Parece que podría haber algunas mejoras en la forma en que se exponen las asignaciones de etiquetas a los temas a través de la API. Específicamente, la capacidad de consultar las etiquetas recién agregadas a los temas. Mi caso de uso particular es utilizar el etiquetado en Discourse para indicar que algún tema debe exportarse a otro sistema (un gestor de tareas, por ejemplo), y planeo usar Integromat para ello. Pero esto podría aplicarse con la misma facilidad a cualquier sistema que consulte la API para determinar, por ejemplo, si se ha añadido una etiqueta “Crear Tarea” a un tema y luego actuar en consecuencia.
Mi entendimiento es que la API actual no lo permite fácilmente. Existe una solución alternativa con webhooks, pero, a menos que esté equivocado, una llamada directa a la API sería más limpia y sencilla.
¡Gracias por considerarlo! Espero haberlo colocado en el lugar correcto.
Agregar una etiqueta en un tema activará la clase de webhook topic, a la que puedes suscribirte para monitorear cualquier etiqueta recién agregada en tus temas. Incluso puedes filtrarlo por una etiqueta específica en la interfaz de usuario de Discourse para mantener bajo el número de eventos.
¡Gracias por la respuesta rápida! ¿Así que la “solución alternativa” que sugiere Integromat es realmente la forma prevista de manejar esto?
Desafortunadamente, no tengo mucha experiencia con APIs frente a webhooks, etc., pero estoy pensando específicamente en la integración que Fibery tiene con Discourse. De hecho, replica completamente el contenido de Discourse, pero en un sistema que permite enlazado arbitrario de datos (por ejemplo, temas, usuarios, etc.) para una gestión de proyectos y retroalimentación de nivel superior. Según mi entendimiento, utilizan la API para esta integración:
Por lo tanto, si ellos quisieran admitir etiquetas en su integración (lo cual actualmente no hacen), incluyendo la detección de la adición o eliminación de etiquetas, ¿sería posible con la API actual? De no ser así, ¿esto sugeriría alguna utilidad aún no vista para añadir mayor profundidad al soporte de etiquetas de la API?
De nuevo, reconozco que quizás estoy haciendo preguntas obvias por ignorancia. Tal vez sea difícil o excesivamente complicado exponer esto en la API, o simplemente no tenga sentido por alguna razón. Pero espero que sea algo sencillo de aclarar.
Una llamada a la API permite que un servicio externo llame a Discourse cuando lo desee para extraer datos de Discourse.
Sin embargo, si ese servicio quiere reaccionar a eventos en Discourse, tendría que consultar periódicamente los cambios, lo cual es un desperdicio o poco práctico si hay muchas “cosas” que vigilar/consultar.
Los webhooks permiten que Discourse impulse suavemente a este servicio externo cada vez que ocurre un nuevo evento, de modo que este servicio externo pueda hacer su trabajo solo cuando haya algo que hacer. El servicio puede confiar en la información del payload del webhook, si es suficiente, o usarla para desencadenar llamadas adicionales a la API para realizar la tarea necesaria. Por lo tanto, la API y el sistema de webhooks son complementarios.
Excelente, eso es muy útil. Digamos que estás haciendo un espejo de Discourse en este sistema externo (Fibery). Si entendí correctamente, sería apropiado usar la API para recopilar inicialmente todos los datos de los temas, etc. Pero si quisieras mantener esos datos actualizados con el tiempo, por ejemplo, para cambios en categorías o etiquetas, usarías Webhooks para estar al tanto de esos cambios, ¿verdad? En ese caso, ¿qué hay de obtener datos de temas completamente nuevos? ¿A través de la API o de un Webhook? Quizás planteado de otra manera: ¿tiene sentido usar la API solo para una extracción única para poblar un espejo y luego usar Webhooks de forma continua para mantenerlo actualizado en todo? ¿O es una combinación de ambos y, de ser así, cómo funciona esa combinación?
Me encantaría poder cerrar el ciclo en este tema y saber que comprendo completamente cómo debería funcionar. Estoy trabajando con el equipo de Fibery para esperar que también lo implementen. Así que, si tienes la oportunidad de responder mis preguntas pendientes, te lo agradecería mucho.