Ich möchte Daten von Drittanbieter-APIs unter dem Titel des Themas für jedes Thema auf der Themenlistenseite rendern. Kann mir jemand zeigen, wie ich Daten nach Best Practices rendern kann?
Da ich nicht viel über die Anpassung in Discourse weiß. Jeder Rat wäre eine große Hilfe und wird geschätzt!
Danke @Lilly. Eigentlich möchte ich einige Daten von einer Drittanbieter-API für jedes Thema anzeigen und suche dafür nach einer Möglichkeit, die Drittanbieter-API aufzurufen, wenn Daten auf der Listenseite geladen werden.
Wenn die Seite geladen wird, sollte ich die API aufrufen und dann die Daten rendern. Im Moment sammle ich alle Listendaten und rufe die Drittanbieter-API auf, und was auch immer an Daten zurückkommt, füge ich einfach dem DOM hinzu. Aber ich möchte die Daten beim Lazy Loading der Themen-Listen-Seite abrufen.
Das ist generell eine schlechte Idee. Wenn der Host, der die API bereitstellt, langsam ist, wird Ihr Forum langsam sein. Wenn der Host, der die API bereitstellt, ausgefallen ist, wird Ihr Forum ausgefallen sein. Wenn Ihr Forum überlastet ist, wird die API überlastet sein.
Sie sollten die Daten asynchron laden, zum Beispiel in einem Sidekiq-Job, und sie mit dem Thema speichern.
Ich weiß, dass es eine schlechte Idee ist, aber ich bin neu bei Discourse und wusste nicht viel darüber. Jetzt werde ich nach dem Sidekiq-Job suchen, wie Sie vorschlagen.
Ich habe noch eine Frage. Kann der Sidekiq-Job erkennen, ob neue Daten für die Themenliste eingehen? Oder muss ich etwas anders machen, damit der Job weiß, dass die Listenseite mehr Daten lädt?