API HTTP
Avec l'API HTTP vous pouvez requêter des actions via le protocole HTTP et aussi fournir des queries à Léon depuis des services externes.
Vous pouvez donc facilement communiquer avec Léon depuis n'importe quel service comme Discord, Signal, Telegram, Messenger et plus...
Exemple de scénario :
- Vous envoyez une commande sur Discord. Ça pourrait être "!query hello".
- Votre bot Discord la récupère, et transmet "hello" à votre serveur Léon.
- Léon exécute le module greeting et retourne la réponse.
- Vous gérez la réponse et votre bot Discord l'affiche sur Discord.
Léon expose deux types d'endpoints HTTP : l'endpoint de query et les endpoints d'actions.
Astuce
Par défault, Léon est exposé via HTTP. Vous pouvez désactiver ceci depuis votre fichier .env
:
#
Clé de l'API HTTPAfin de requêter Léon via HTTP, vous devez fournir la clé API HTTP. Cette clé peut être trouvée dans le fichier .env
avec la variable d'environnement LEON_HTTP_API_KEY
.
#
Générer une nouvelle cléLa clé de l'API HTTP est automatiquement générée pendant la phase d'installation de Léon. Si vous avez besoin d'en générer une nouvelle, veuillez exécuter cette commande :
#
L'endpoint de queryVia cette endpoint, Léon gère la chaîne de caractères (query) que vous envoyé, puis il exécute le module ciblé en fonction de ce qu'il a compris.
#
EndpointMéthode | URL | Header | Body data |
---|---|---|---|
POST | /api/query | - Content-Type: application/json - X-API-Key: {LEON_HTTP_API_KEY} | query |
#
Exemple#
Endpoints d'actionsPar défaut, chaque action de module est exposée via HTTP. Léon traduit automatiquement ces actions en endpoints HTTP en fonction de la configuration des actions.
Astuce
Vous pouvez trouver les endpoints générés dans le fichier core/pkgs-endpoints.json
.
#
EndpointsMéthode | URL | Header |
---|---|---|
- POST - GET | /api/p/{PACKAGE}/{MODULE}/{ACTION} | - Content-Type: application/json - X-API-Key: {LEON_HTTP_API_KEY} |
#
Exemple 1Essayons un exemple avec l'action "run" du module "greeting".
#
Exemple 2Maintenant voyons un autre exemple avec une action de module qui nécessite des paramètres / entités pour fonctionner.
Des actions demandent des entrées spécifiques (entités) et les développeurs de ces actions doivent ajouter leur support pour complètement exposer ces actions via HTTP.
Pour savoir quels paramètres il faut renseigner dans le body data, allez dans le fichier packages/{PACKAGE}/data/expressions/{LANG}.json
.
#
Configuration#
OptionsCes options peuvent être configurées au niveau des actions dans le fichier packages/{PACKAGE}/data/expressions/{LANG}.json
.
Clé | Description | Défaut |
---|---|---|
http_api.method | La méthode HTTP de l'action. | GET if no entityPOST if an entity is needed |
http_api.timeout | Le temps d'exécution avec le timeout (en ms). | 60000 |
http_api.disabled | Désactiver une action spécifique. | false |
http_api.entities | Les entités qui peuvent être passées en tant que paramètres dans le body data | [] |
Astuce
- Pour les entités, vous pouvez prendre exemple sur :
packages/trend/data/expressions/en.json
. - Pour une liste complète du format des entités, veuillez regarder ici.