Effettuare una richiesta HTTP esterna da Discourse

Ciao,
sto pensando di sostituire un sito web esistente con Discourse. Il problema è che il backend di quel sito contiene una logica condivisa anche per un’app mobile e azioni specifiche per il sito.
Quindi, dovendo mantenere attivo un server con quella logica particolare, mi chiedo se sia possibile inviare richieste HTTP da Discourse a un server esterno. L’ideale sarebbe che, al verificarsi di certi eventi in Discourse, venga fatta una richiesta HTTP al mio server.

È effettivamente possibile? Se sì, esiste una guida da qualche parte?

Inoltre, è possibile creare un argomento con campi specifici e trasmetterli nella richiesta HTTP?

È assolutamente possibile, scrivi un plugin.

Ecco un esempio di plugin che effettua una chiamata esterna mentre elabora i onebox.

Credo che ciò che stai cercando di fare sia più vicino al concetto di webhook. Devi scrivere alcuni webhook che chiamino gli URL forniti quando si verifica un evento. Se è così, puoi dare un’occhiata a questo.

Sì, se la comunicazione è unidirezionale, la proposta di @fzngagan è migliore.

Se desideri recuperare ed elaborare una risposta in modo complesso, una chiamata REST in un plugin potrebbe essere più adatta.

Grazie a tutti per le risposte. No, sto cercando un modo per creare un client API REST completo e non un semplice webhook.
Ciò che sto cercando di replicare è una sorta di marketplace in cui gli utenti possono pubblicare i propri oggetti e poi accettare le varie offerte da altri utenti. La logica del marketplace deve rimanere sul server, ma il frontend deve essere Discourse e quindi deve essere aggiornato in base ai dati sul server.

Onestamente non so quale sia la scelta migliore per questa situazione, quindi sto cercando consigli e riferimenti!

Vi linko anche il sito (è in italiano) solo per farvi capire meglio cosa sto cercando di migrare.

Credo che sia necessaria una chiarificazione riguardo al ruolo che Discourse avrebbe in questo contesto.
Come si collega il tuo caso d’uso alla discussione/conversazione? Cosa verrebbe fatto su Discourse e cosa sul tuo server?

Questa è un’affermazione molto generica. Discourse di per sé è un intero sistema. Quali dati mostreresti su Discourse che provengono o sono sincronizzati con il tuo altro server?

Dalle informazioni che hai condiviso, è certamente possibile realizzarlo tramite un plugin. Esistono integrazioni per WordPress, GitHub, ecc. che potrebbero fare qualcosa di simile a ciò che stai cercando di fare. Ma sto cercando di leggere tra le righe.

Se vuoi capire come costruire plugin, ecco un’ottima raccolta di link di @merefield

Anche questo è un buon punto di partenza.
https://meta.discourse.org/t/creating-routes-in-discourse-and-showing-data/48827/19?u=fzngagan

Ok, lasciami spiegare meglio fin dall’inizio l’idea:

Voglio creare un marketplace dove gli utenti possono vendere o scambiare i propri oggetti. Idealmente, ogni volta che un utente crea un post, dovrebbe inserire campi specifici per descrivere l’oggetto. Gli altri utenti dovrebbero avere la possibilità di discutere il prezzo dell’oggetto e fare offerte tramite pulsanti e campi specifici (che dovrebbero essere aggiunti utilizzando Discourse).

Partendo da questa idea, ci sono due strade che potrei seguire (se Discourse lo consente):

  1. Ogni volta che viene effettuata un’interazione su Discourse relativa a tali offerte, vorrei che il mio server aggiornasse o inviasse i dati.

Oppure, nel caso in cui quanto sopra non fosse possibile:

  1. Vorrei trasferire tutta la logica su Discourse utilizzando il suo database interno e creare un’API REST su Discourse che consenta a un’applicazione mobile di connettersi e utilizzare il servizio direttamente dal telefono.

Qual è l’idea migliore e più veloce da implementare utilizzando Discourse?

Questa è la strada preferibile da seguire. Il motivo è che Discourse non è un mercato e non avrebbe molto senso modificarlo per farlo comportare come tale.

Inoltre, desideri scrivere tu stesso il codice o assumere qualcuno per farlo?

Perfetto, quindi se è possibile farlo su Discourse, qual è il modo migliore per procedere?

Dato che non è previsto alcun guadagno e poiché ho esperienza nella programmazione, la mia idea è scrivere tutto da solo.

Credo che dovresti leggere i link condivisi sopra. Inoltre, questo plugin per WordPress svolge un compito simile, ma specifico per WordPress, quindi puoi controllarlo anche tu.