Posso usare l'API JSON invece di creare un plugin?

Sto cercando di realizzare alcune personalizzazioni (come descritto qui e qui) che sembrano richiedere una solida conoscenza di Ember e Rails, oltre a capire come si integra il codice sottostante di Discourse.

Di conseguenza, i progressi sono stati lenti (sono più abituato ad Angular e JavaScript e sono nuovo a Discourse), quindi sto cercando modi per portare queste personalizzazioni a termine più rapidamente.

Quindi, ecco la domanda: invece di creare un plugin che manipola i template di Discourse, potrei ottenere lo stesso risultato finale utilizzando la JSON API?

Avere una buona padronanza dell’API sembra più efficiente rispetto alla conoscenza approfondita di Ember e del codice di Discourse, e potrebbe essere implementato utilizzando linguaggi come JavaScript puro o jQuery.

Penso che la risposta sia sì. Come ha affermato il team, tutto ciò che fa Discourse può essere realizzato tramite l’API.

Suppongo che questo possa funzionare, ma il motivo della domanda è il seguente: il caso d’uso normale per la JSON API, presumo, sia un’app separata che desidera interagire con l’app di Discourse. Nel mio caso, sarebbe l’app di Discourse che chiama la propria API.

Ad esempio, avevo chiesto in precedenza come recuperare e mostrare i proprietari dei gruppi di ciascun gruppo nella pagina indice dei gruppi. Normalmente, per farlo si crea un plugin.

Nel mio caso, farei qualcosa del genere—nella mia dashboard di personalizzazione sotto “”—chiamando una funzione AJAX quando viene caricata la pagina indice dei gruppi, che invia una chiamata API per restituire i proprietari di ciascun gruppo, e poi inserisce queste informazioni in ogni elenco di gruppi.

Funzionerebbe? Dovrei generare una chiave API per questo, dato che proviene dalla stessa applicazione?

Il problema è che, se desideri memorizzare un nuovo tipo di dati, hai bisogno di un plugin. Il server deve sapere dove archiviare i dati, quale formato è accettabile, chi può visualizzarli e chi può modificarli.


Le identità dei proprietari dei gruppi sono pubbliche, quindi un Componente Tema potrebbe caricarle e visualizzarle sulla pagina degli indici dei gruppi, anche se lentamente.

Per i temi in evidenza nelle categorie, esistono effettivamente alcuni temi e plugin che utilizzano i tag per implementare questa funzionalità. Li hai già esaminati?

Bene. Probabilmente non cercherei di archiviare un nuovo tipo di dati. Piuttosto, mi occuperei di campi personalizzati, seguendo il formato preesistente per i campi personalizzati.

Non avevo mai visto plugin per evidenziare argomenti nelle categorie. Per me la chiave è dare ai moderatori delle categorie la possibilità di selezionarli. Darò un’occhiata.

Per quanto riguarda l’uso dell’API per visualizzare i proprietari delle categorie e altre informazioni che otterrei dall’API: avrebbe senso se fosse un po’ più lento del processo di compilazione normale, ma spero che questo metodo non sia troppo lento (credo che funzionerebbe proprio come i siti che normalmente recuperano informazioni dalle API per popolare i dati).

Puoi dichiarare nuovi campi personalizzati (e serializzarli) solo in un plugin.