Abrufen von Daten Dritter für die Themenliste

Hallo @Discourse,

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!

Kann mir bitte jemand bei der Lösung dieses Problems helfen?

Wenn Sie die Plugin-Outlets-Theme-Komponente verwenden, wird Ihnen angezeigt, welches Outlet Sie für Ihre Anpassung verwenden können.

klingt, als ob Sie das after-topic-list-item-Outlet möchten.

Links zu weiteren Themen zur Entwicklung von Theme-Komponenten

Developing Discourse Themes & Theme Components

Theme Developer Quick Reference Guide

Beginner's guide to using Discourse Themes

Developing Discourse Plugins - Part 1 - Create a basic plugin

Wenn Sie Hilfe bei der Entwicklung dieser Anpassung suchen, empfehle ich die Kategorie Marketplace. :slight_smile:

1 „Gefällt mir“

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.

1 „Gefällt mir“

Danke @RGJ fürs Schreiben!

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?

Vielen Dank!

Der Sidekiq-Job wird nicht wissen, ob eine Seitenliste weitere Daten lädt. Er ist unabhängig.

Sie werden den Sidekiq-Job die Daten periodisch über die API laden und zusammen mit dem Thema speichern lassen.

Wenn dann die Themenliste geladen wird, werden die gespeicherten Daten abgerufen. Betrachten Sie es als Caching-Mechanismus.

3 „Gefällt mir“

Verstanden.

Vielen Dank @RGJ!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.