Kann ich die JSON-API verwenden, anstatt ein Plugin zu erstellen?

Ich arbeite an einigen Anpassungen (wie hier hier und hier beschrieben), die ein fundiertes Verständnis von Ember und Rails sowie davon, wie die zugrunde liegende Discourse-Codebasis zusammenhängt, erfordern.

Daher schreitet die Arbeit nur langsam voran (ich bin eher mit Angular und JavaScript vertraut und neu bei Discourse), sodass ich nach Wegen suche, diese Anpassungen schneller fertigzustellen.

Also hier die Frage: Könnte ich das gleiche Endergebnis erreichen, anstatt ein Plugin zu erstellen, das Discourse-Vorlagen manipuliert, die JSON API nutzen?

Ein solides Verständnis der API scheint effizienter zu sein als ein tiefes Verständnis von Ember und der Discourse-Codebasis und könnte mit Sprachen wie reinem JavaScript oder jQuery implementiert werden.

Ich denke, die Antwort lautet ja. Wie das Team gesagt hat, kann alles, was Discourse tut, auch über die API erledigt werden.

Ich gehe davon aus, dass dies funktionieren kann, aber der Grund für die Frage ist folgender: Der normale Anwendungsfall für die JSON API ist meiner Einschätzung nach eine separate App, die mit der Discourse-App interagieren möchte. In meinem Fall würde die Discourse-App jedoch ihre eigene API aufrufen.

Zum Beispiel hatte ich zuvor gefragt, wie man die Gruppenbesitzer jeder Gruppe auf der Gruppenübersichtsseite abrufen und anzeigen kann. Normalerweise würde man dafür ein Plugin erstellen.

In meinem Fall würde ich etwas wie folgt tun – in meinem Anpassungsbereich unter “” – eine AJAX-Funktion aufrufen, wenn die Gruppenübersichtsseite lädt, die einen API-Aufruf sendet, um die Gruppenbesitzer jeder Gruppe zurückzugeben, und diese Informationen dann in jede Gruppenliste einfügt.

Würde das funktionieren? Müsste ich dafür einen API-Schlüssel generieren, da der Aufruf von der App selbst stammt?

Das Problem ist jedoch, dass du für die Speicherung einer neuen Art von Daten ein Plugin benötigst. Der Server muss wissen, wo die Daten gespeichert werden sollen, welches Format akzeptiert wird, wer die Daten einsehen darf und wer sie ändern darf.


Die Identitäten der Gruppeninhaber sind öffentlich verfügbar. Daher könnte eine Theme-Komponente diese laden und auf der Gruppenübersichtsseite anzeigen – wenn auch langsam.

Für hervorgehobene Themen in Kategorien gibt es tatsächlich einige Themes und Plugins, die Tags verwenden, um dies umzusetzen. Hast du dir diese bereits angesehen?

Cool. Ich würde wahrscheinlich nicht nach einer neuen Art von Daten suchen, sondern mich auf benutzerdefinierte Felder konzentrieren, die dem bestehenden Format für benutzerdefinierte Felder folgen.

Ich hatte bisher keine Plugins gesehen, die Themen in Kategorien hervorheben. Der entscheidende Punkt für mich ist, dass die Moderatoren der Kategorien die Möglichkeit haben, diese auszuwählen. Ich werde mir das ansehen.

Was die Verwendung der API zur Anzeige der Kategorienbesitzer und anderer Informationen betrifft, die ich von der API erhalten würde: Es wäre sinnvoll, wenn dies etwas langsamer wäre als der normale Build-Prozess, aber ich hoffe, dass diese Methode nicht zu langsam ist (ich denke, sie würde auf Websites funktionieren, die normalerweise Informationen aus APIs abrufen, um Daten zu füllen).

Sie können nur in einem Plugin neue benutzerdefinierte Felder deklarieren (und serialisieren).