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?
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.
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:
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):
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:
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?
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.