Hello Hydro,
Pour répondre à ta question : comment est-ce qu’un package Constellation peut exposer un service HTTP ?
Nativement on ne peut pas, du moins Constellation expose des API REST (https://developer.myconstellation.io/client-api/rest-api/) qui permet, via une URI HTTP/HTTPS, de consommer la Constellation (s’abonner à des SO ou envoyer et recevoir des MC), de manager la Constellation (Management API) ou bien de créer des packages virtuels pour publier des SO ou en consommer, envoyer/recevoir des messages ou meme exposer des MC, produire des logs, etc…
C’est ce qu’on peut faire “nativement”. Ainsi n’importe quel systeme avec la possibilité de faire des call HTTP peut être un package virtuel ou bien consommer la Constellation.
Par contre dans ton cas, l’API Telegram, ou c’est la même chose avec des API comme celle de Google Assistant ou Google Action, ont une notion de WebHook.
C’est a dire que ton service HTTP doit respecter un certain contrat. Ainsi ce n’est pas le client (Telegram) qui s’adapte au service (Constellation) mais l’inverse, le service qui doit s’adapter au client ! Or nativement, les API REST Constellation sont standardisées !
De ce fait, il faut en effet créer un package (cad une application specifique) qui créera un service HTTP spécifique à tel ou telle API, dans ton cas à Telegram pour implémenter le protocole/API de Telegram et faire en sorte d’avoir un package connecteur entre Constellation et Telegram.
On peut donc utiliser le SDK Constellation pour créer un package Constellation en .NET/C# ou en Python qui créera un service HTTP pour traiter les requêtes entrantes de Telegram (ou autre).
Bien entendu, ca oblige à ouvrir manuellement les ports de son routeur pour rediriger un port TCP spécifique vers l’IP de la sentinelle sur laquelle est déployé ce package.
Je vais y réfléchir, mais on (ou je ;)) pourrait créer un package “Http Proxy” qu’on déploierait une bonne fois pour toute dans une Constellation (avec config manuelle de la redirection de port voire même à y intergrer l’UPnP pour une auto configuration si routeur compatible) et qui lui redirigerait le trafic HTTP vers les autres packages voulant exposer des endpoint (en gros un Reverse Proxy HTTP as a Package).
A+