Faire une requête HTTP externe depuis Discourse

Bonjour,
Je songe à remplacer un site web existant par Discourse. Le problème est que le backend de ce site contient une logique partagée, même pour une application mobile, ainsi que des actions spécifiques au site.
Ainsi, étant obligé de maintenir un serveur actif avec cette logique particulière, je me demande s’il est possible d’envoyer des requêtes HTTP depuis Discourse vers un serveur externe. L’idéal serait que, lors de la survenue de certains événements dans Discourse, une requête HTTP soit envoyée à mon serveur.

Est-ce réellement possible ? Si oui, existe-t-il un guide à ce sujet ?

De plus, est-il possible de créer un sujet avec des champs spécifiques et de les transmettre dans la requête HTTP ?

C’est tout à fait possible, écrivez un plugin.

Voici un exemple de plugin qui effectue un appel externe lors du traitement des oneboxes.

Je pense que ce que vous essayez de faire se rapproche du concept de webhooks. Vous devez créer des webhooks qui appellent les URLs fournies lorsqu’un événement se produit. Si c’est bien le cas, vous pouvez consulter ceci :

Oui, si la communication est unidirectionnelle, la proposition de @fzngagan est meilleure.

Si vous souhaitez récupérer et traiter une réponse de manière complexe, un appel REST dans un plugin pourrait être préférable.

Merci à tous pour vos réponses. Non, je cherche un moyen de créer un client API REST complet et non un simple webhook.

Ce que j’essaie de reproduire, c’est une sorte de marché où les utilisateurs peuvent publier leurs objets, puis accepter les diverses offres des autres utilisateurs. La logique du marché doit rester côté serveur, mais l’interface utilisateur doit être Discourse et donc être mise à jour en fonction des données du serveur.

Je ne sais vraiment pas quelle est la meilleure approche dans cette situation, alors je cherche des conseils et des références !

Je vous liens également vers le site (il est en italien) juste pour vous permettre de mieux comprendre ce que j’essaie de migrer.

Je pense qu’il faut apporter quelques clarifications concernant le rôle que Discourse jouerait ici.
Comment votre cas d’usage se rapporte-t-il aux discussions/conversations ? Qu’est-ce qui serait fait sur Discourse et qu’est-ce qui serait fait sur votre serveur ?

C’est une affirmation très large. Discourse en soi est un système complet. Quelles données souhaiteriez-vous afficher sur Discourse qui proviennent de votre autre serveur ou qui sont synchronisées avec celui-ci ?

D’après les informations que vous avez partagées, cela peut certainement être réalisé via un plugin. Il existe des intégrations pour WordPress, GitHub, etc., qui pourraient faire quelque chose de similaire à ce que vous essayez de faire. Mais là, je cherche à lire entre les lignes.

Si vous souhaitez comprendre comment créer des plugins, voici une excellente collection de liens par @merefield

Voici également une autre ressource intéressante.
https://meta.discourse.org/t/creating-routes-in-discourse-and-showing-data/48827/19?u=fzngagan

Ok, laissez-moi mieux expliquer l’idée depuis le début :

Je souhaite créer une place de marché où les utilisateurs peuvent vendre ou échanger leurs articles. Idéalement, chaque fois qu’un utilisateur crée un post, il devrait saisir des champs spécifiques pour décrire l’objet. Les autres utilisateurs devraient avoir la possibilité de discuter du prix de cet article et de faire des enchères via des boutons et des champs spécifiques (qui devraient être ajoutés à l’aide de Discourse).

À partir de cette idée, il y a deux approches que je pourrais envisager (si Discourse le permet) :

  1. Chaque fois qu’une interaction Discourse a lieu concernant ces offres, je souhaite que mon serveur mette à jour ou envoie les données.

Ou, si ce n’est pas possible :

  1. Je souhaite transférer toute la logique à Discourse en utilisant sa base de données interne et créer une API REST sur Discourse permettant à une application mobile de se connecter et d’utiliser le service depuis un téléphone portable.

Quelle est la meilleure et la plus rapide idée à mettre en œuvre avec Discourse ?

C’est la meilleure approche. En effet, Discourse n’est pas un marché et cela n’aurait guère de sens de le modifier pour qu’il se comporte comme tel.

De plus, souhaitez-vous écrire le code vous-même ou engager quelqu’un pour le faire ?

Parfait, donc si c’est possible de faire cela dans Discourse, quelle est la meilleure méthode ?

Puisque cela n’est pas destiné à générer de revenus et que j’ai de l’expérience en programmation, mon idée est de tout écrire moi-même.

Je pense que vous devriez lire les liens partagés ci-dessus. De plus, ce plugin WordPress effectue une tâche similaire mais pour WordPress, vous pouvez donc également le consulter.