Crear APIs personalizadas

¿Cuál es el mejor método para crear APIs personalizadas en el foro de Discourse?

Por ejemplo: Quiero crear una solicitud GET que me devuelva users.count, topics.count y categories.count. ¿Cómo agrego esta API al foro?

Necesitas escribir un plugin. Consulta la Guía para principiantes sobre la creación de plugins de Discourse, Parte 1: Crear un plugin básico.

4 Me gusta

/admin/about.json

Tiene la mayor parte de eso, creo. O tal vez es solo /about.json.

1 me gusta

No exactamente los mismos datos, así que quiero crear una API JSON personalizada.

1 me gusta

He estado usando GitHub - discourse/discourse-subscriptions: A Discourse plugin that allows payments and subscription management via Stripe. · GitHub como modelo para agregar un modelo (no necesitas un modelo completo, pero discourse-subscriptions/config/routes.rb at main · discourse/discourse-subscriptions · GitHub te da un ejemplo de cómo agregar una ruta). Eso y add_to_class es casi todo lo que necesitas saber. ¡Buena suerte!

1 me gusta

Gracias @pfaffman.
Lo revisaré.

1 me gusta

No pude crear una página/API personalizada a través del plugin. ¿Existe una guía para principiantes que pueda seguir o algún artículo que muestre los pasos básicos? Seguí la guía de Discourse y pude agregar configuraciones al plugin, pero no logré crear una nueva página.
@pfaffman

Usé el plugin de suscripciones como guía para crear uno propio. El generador de plugins crea un plugin con una nueva ruta. Es complicado porque hay que manejar tanto la parte de Rails como la de Ember. Si solo quieres agregar una ruta de Rails (API), no es demasiado difícil. (Otros podrían decir que agregar solo una ruta de Ember es fácil).

¿Necesitas una nueva página para renderizar en el navegador o solo el back end?

1 me gusta