Eine externe HTTP-Anfrage von Discourse aus durchführen

Hallo,

ich überlege, eine bestehende Website durch Discourse zu ersetzen. Das Problem ist, dass das Backend dieser Seite eine gemeinsame Logik enthält, die auch für eine mobile App und spezifische Aktionen der Website genutzt wird.

Da ich also einen aktiven Server mit dieser speziellen Logik betreiben müsste, frage ich mich, ob es möglich ist, von Discourse aus HTTP-Anfragen an einen externen Server zu senden. Ideal wäre es, wenn bei bestimmten Discourse-Ereignissen automatisch eine HTTP-Anfrage an meinen Server gestellt wird.

Ist das überhaupt möglich? Falls ja, gibt es dafür eine Anleitung?

Außerdem: Ist es möglich, ein Thema mit bestimmten Feldern zu erstellen und diese in die HTTP-Anfrage einzubinden?

Das ist absolut möglich, schreiben Sie ein Plugin.

Hier ist ein Beispiel für ein Plugin, das während der Verarbeitung von Oneboxes externe Aufrufe tätigt.

Ich denke, das, was Sie versuchen, kommt dem Konzept von Webhooks näher. Sie müssen einige Webhooks schreiben, die bei einem Ereignis die angegebenen URLs aufrufen. Falls das zutrifft, können Sie sich dies hier ansehen:

Ja, wenn die Kommunikation einseitig ist, ist der Vorschlag von @fzngagan besser.

Wenn Sie eine Antwort auf komplexe Weise abrufen und verarbeiten möchten, könnte ein REST-Aufruf in einem Plugin besser geeignet sein.

Vielen Dank an alle für die Antworten. Nein, ich suche nach einer Möglichkeit, einen vollständigen REST-API-Client zu erstellen und nicht nur einen einfachen Webhook.
Was ich nachbilden möchte, ist eine Art Marktplatz, auf dem Nutzer ihre Objekte veröffentlichen können und anschließend die verschiedenen Angebote anderer Nutzer annehmen können. Die Logik des Marktplatzes sollte auf dem Server verbleiben, das Frontend jedoch auf Discourse basieren und entsprechend den Daten auf dem Server aktualisiert werden.

Ich bin ehrlich gesagt unsicher, was in dieser Situation die beste Vorgehensweise ist, daher suche ich nach Tipps und Referenzen!

Zur besseren Veranschaulichung dessen, was ich migrieren möchte, verlinke ich hier auf die Website (sie ist auf Italienisch).

Ich denke, es bedarf einiger Klarstellungen hinsichtlich der Rolle, die Discourse hier spielen würde. Wie hängt Ihr Anwendungsfall mit Diskussionen oder Gesprächen zusammen? Was würde auf Discourse erledigt und was auf Ihrem Server?

Das ist eine sehr allgemeine Aussage. Discourse an sich ist ein komplettes System. Welche Daten würden Sie auf Discourse anzeigen, die von Ihrem anderen Server stammen oder mit diesem synchronisiert werden?

Aus den Informationen, die Sie geteilt haben, lässt sich dies sicherlich über ein Plugin umsetzen. Es gibt Integrationen für WordPress, GitHub usw., die Ähnliches tun könnten wie das, was Sie versuchen. Aber das ist nur mein Versuch, zwischen den Zeilen zu lesen.

Wenn Sie verstehen möchten, wie man Plugins erstellt, finden Sie hier eine großartige Sammlung von Links von @merefield:

Auch dieser Link ist empfehlenswert:
https://meta.discourse.org/t/creating-routes-in-discourse-and-showing-data/48827/19?u=fzngagan

Ok, lass mich die Idee von Anfang an genauer erklären:

Ich möchte einen Marktplatz erstellen, auf dem Nutzer ihre Artikel verkaufen oder tauschen können. Idealerweise sollte jeder Nutzer, der einen Beitrag erstellt, spezifische Felder ausfüllen, um den Artikel zu beschreiben. Andere Nutzer sollten die Möglichkeit haben, über den Preis des Artikels zu diskutieren und über spezielle Buttons und Felder (die mit Discourse hinzugefügt werden sollen) Gebote abzugeben.

Ausgehend von dieser Idee gibt es zwei Wege, die ich gehen könnte (falls Discourse dies zulässt):

  1. Jedes Mal, wenn eine Interaktion in Discourse zu solchen Angeboten stattfindet, soll mein Server die Daten aktualisieren oder senden.

Oder, falls das oben genannte nicht möglich ist:

  1. Ich möchte die gesamte Logik in Discourse verlagern, indem ich dessen interne Datenbank nutze, und eine REST-API für Discourse erstellen, die es einer mobilen Anwendung ermöglicht, sich zu verbinden und den Dienst vom Smartphone aus zu nutzen.

Was ist die bessere und schnellere Idee zur Umsetzung mit Discourse?

Dies ist der vorzuziehende Weg. Der Grund dafür ist, dass Discourse kein Marktplatz ist und es wenig Sinn ergäbe, es so anzupassen, dass es sich wie einer verhält.

Außerdem: Möchtest du den Code selbst schreiben oder jemanden beauftragen, das zu übernehmen?

Perfekt, also wenn es in Discourse möglich ist, das zu tun, was ist der beste Weg, dies zu erreichen?

Da dies nicht gewinnorientiert sein soll und ich Erfahrung in der Programmierung habe, ist meine Idee, alles selbst zu schreiben.

Ich denke, du solltest die oben geteilten Links lesen. Außerdem gibt es ein ähnliches Plugin für WordPress, das du dir ebenfalls ansehen kannst.