Posso usar a API JSON em vez de criar um plugin?

Estou realizando algumas customizações (como descritas aqui e aqui) que parecem exigir um entendimento sólido de Ember e Rails, além de como o código base subjacente do Discourse se encaixa.

Como resultado, o progresso tem sido lento (estou mais acostumado com Angular e JavaScript, e sou novo no Discourse), então estou procurando maneiras de lançar essas customizações mais rapidamente.

Então, eis a pergunta: em vez de criar um plugin que manipula os templates do Discourse, seria possível alcançar o mesmo resultado final usando a API JSON?

Ter um domínio sólido da API parece mais eficiente do que dominar Ember e o código base do Discourse, e poderia ser implementado usando linguagens como JavaScript puro ou jQuery.

Acho que a resposta é sim. Como a equipe disse, qualquer coisa que o Discourse faz pode ser feita com a API.

Suponho que isso possa funcionar, mas a razão da pergunta: o caso de uso normal da API JSON, suponho, é uma aplicação separada que deseja interagir com a aplicação do Discourse. No meu caso, seria a própria aplicação do Discourse chamando sua própria API.

Por exemplo, eu havia perguntado antes sobre recuperar e exibir os proprietários de grupos de cada grupo na página de índice de grupos. Normalmente, você criaria um plugin para isso.

No meu caso, faria algo como—no meu painel de personalização, dentro de “”—chamar uma função AJAX quando a página de índice de grupos carregar, enviando uma chamada à API para retornar os proprietários de cada grupo e, em seguida, inserir essas informações em cada listagem de grupo.

Isso funcionaria? Eu precisaria gerar uma chave de API para isso, considerando que a chamada vem da própria aplicação?

2 curtidas

O problema é que, se você quiser armazenar um novo tipo de dado, será necessário um plugin. O servidor precisa saber onde armazenar os dados, qual formato é aceitável, quem tem permissão para ver os dados e quem tem permissão para alterá-los.


As identidades dos proprietários de grupos são publicamente disponíveis, então um Componente de Tema poderia carregá-las e exibi-las na página de índice dos grupos — lentamente.

Para tópicos em destaque por categoria, na verdade existem alguns temas e plugins que usam tags para implementar isso. Você já viu esses?

5 curtidas

Legal. Provavelmente não estaria buscando armazenar um novo tipo de dado. Em vez disso, estaria lidando com campos personalizados, seguindo o formato já existente de campos personalizados.

Eu não tinha visto plugins para destacar tópicos em categorias anteriormente. O ponto chave para mim é dar aos moderadores das categorias a capacidade de selecioná-los. Vou dar uma olhada.

Quanto ao uso da API para exibir proprietários de categorias e outras informações que eu receberia da API: faria sentido se fosse um pouco mais lento que o processo de construção normal, mas espero que esse método não seja muito lento (acho que funcionaria bem em sites que normalmente recuperam informações de APIs para preencher dados).

1 curtida

Você só pode declarar novos campos personalizados (e serializá-los) em um plugin

2 curtidas