Fazer uma requisição HTTP externa a partir do Discourse

Olá,
Estou pensando em substituir um site existente pelo Discourse. O problema é que o backend desse site contém uma lógica compartilhada, mesmo para um aplicativo móvel e ações específicas do site.
Então, tendo que manter um servidor ativo com essa lógica específica, me pergunto se é possível enviar solicitações HTTP do Discourse para um servidor externo. O ideal seria que, na ocorrência de certos eventos do Discourse, fosse feita uma solicitação HTTP ao meu servidor.

Isso é realmente possível? Se sim, existe algum guia?

Além disso, é possível criar um tópico com campos específicos e passá-los na solicitação HTTP?

É perfeitamente possível, escreva um plugin.

Aqui está um exemplo de um plugin que faz uma chamada externa ao processar oneboxes.

Acho que o que você está tentando fazer está mais próximo do conceito de webhooks. Você precisa criar alguns webhooks que acionem as URLs fornecidas quando um evento ocorrer. Se for esse o caso, você pode dar uma olhada aqui.

Sim, se a comunicação for unidirecional, a proposta do @fzngagan é melhor.

Se você quiser recuperar e processar uma resposta de alguma forma complexa, então uma chamada REST em um plugin pode ser melhor.

Obrigado a todos pelas respostas. Não, estou procurando uma maneira de criar um cliente completo de API REST e não apenas um webhook simples.
O que estou tentando replicar é uma espécie de marketplace onde os usuários podem publicar seus objetos e, em seguida, podem aceitar as várias ofertas de outros usuários. A lógica do marketplace deve permanecer no servidor, mas o front-end deve ser o Discourse e, portanto, deve ser atualizado de acordo com os dados do servidor.

Honestamente, não sei qual é a melhor abordagem para essa situação, então estou procurando dicas e referências!

Também estou vinculando a vocês o site (está em italiano) apenas para que vocês possam entender melhor o que estou tentando migrar.

Acho que é necessário esclarecer qual seria o papel do Discourse nesse cenário.
Como o seu caso de uso se relaciona com discussões/conversas? O que seria feito no Discourse e o que seria feito no seu servidor?

Essa é uma afirmação ampla. O Discourse, por si só, é um sistema completo. Quais dados você mostraria no Discourse que viriam de ou seriam sincronizados com seu outro servidor?

Com base nas informações que você compartilhou, certamente é possível fazer isso por meio de um plugin. Existem integrações para WordPress, GitHub etc., que podem estar fazendo algo semelhante ao que você está tentando. Mas isso é apenas minha tentativa de ler nas entrelinhas.

Se você quiser entender como criar plugins, aqui está uma ótima coleção de links de @merefield:

Este também é um bom recurso:
https://meta.discourse.org/t/creating-routes-in-discourse-and-showing-data/48827/19?u=fzngagan

Ok, deixe-me explicar melhor a ideia desde o início:

Quero criar um marketplace onde os usuários possam vender ou trocar seus itens. Idealmente, sempre que um usuário criar uma postagem, ele deverá preencher campos específicos para descrever o objeto. Outros usuários devem ter a oportunidade de discutir o preço do item e fazer lances por meio de botões e campos específicos (que devem ser adicionados usando o Discourse).

Partindo dessa ideia, existem duas abordagens que posso seguir (se o Discourse permitir):

  1. Sempre que houver uma interação no Discourse relacionada a essas ofertas, gostaria que meu servidor atualizasse ou enviasse os dados.

Ou, caso o acima não seja possível:

  1. Gostaria de transferir toda a lógica para o Discourse, usando seu banco de dados interno, e criar uma API REST no Discourse que permita que um aplicativo móvel se conecte e utilize o serviço diretamente do celular.

Qual é a melhor e mais rápida ideia para implementar usando o Discourse?

Essa é a melhor abordagem. O motivo é que o Discourse não é um mercado e não faria muito sentido modificá-lo para se comportar como um.

Além disso, você deseja escrever o código você mesmo ou contratar alguém para fazer isso?

Perfeito, então, se é possível fazer isso no Discourse, qual é a melhor maneira de fazer?

Como isso não tem como objetivo gerar receita e como tenho experiência em programação, minha ideia é escrever tudo eu mesmo.

Acho que você deveria ler os links compartilhados acima. Além disso, este plugin do WordPress faz uma tarefa semelhante, mas para o WordPress, então você pode verificar isso também.