Criar APIs Personalizadas

Qual é a melhor maneira de criar APIs personalizadas no fórum Discourse?

Por exemplo: quero criar uma requisição GET que retorne users.count, topics.count e categories.count.
Como posso adicionar essa API ao fórum?

Você precisa escrever um plugin. Consulte Guia para Iniciantes na Criação de Plugins do Discourse Parte 1: Criando um plugin básico

4 curtidas
 /admin/about.json

Tem a maior parte disso, acho. Ou talvez seja apenas /about.json.

1 curtida

Não exatamente os mesmos dados, então quero criar uma API JSON personalizada.

1 curtida

Tenho usado GitHub - discourse/discourse-subscriptions: A Discourse plugin that allows payments and subscription management via Stripe. · GitHub como modelo para adicionar um modelo (você não precisa de um modelo completo, mas discourse-subscriptions/config/routes.rb at main · discourse/discourse-subscriptions · GitHub fornece um exemplo de como adicionar uma rota. Isso e add_to_class são quase tudo o que você precisa saber. Boa sorte!

1 curtida

Obrigado, @pfaffman
Vou dar uma olhada nisso.

1 curtida

Não consegui criar uma página/API personalizada por meio do plugin.
Existe um guia para iniciantes que eu possa seguir? Ou algum artigo que mostre os passos básicos?
Segui o guia do Discourse e consegui adicionar configurações ao plugin, mas não consegui criar uma nova página.
@pfaffman

Usei o plugin de assinaturas como base para um que criei. O gerador de plugins cria um plugin com uma nova rota. É complicado porque você precisa lidar tanto com as partes do Rails quanto do Ember. Se você quiser adicionar apenas uma rota do Rails (API), não é tão difícil. (Outros podem dizer que adicionar apenas uma rota do Ember é fácil).

Você precisa de uma nova página para renderizar no navegador ou apenas do back-end?

1 curtida