• Aide
  • Utilisateurs
  • Développeurs
  • Doc interne
  • e-learning
Show / Hide Table of Contents

Extensibilité Altazion Hub

Développer un module

using Altazion.Hub.Common;
using System;
using System.Collections.Generic;
using System.Text;

namespace Altazion.Hub.Modules.Exemple
{
    public class ExempleModule : IAltazionHubModule
    {
        bool IAltazionHubModule.Execute()
        {
            return false;
        }

        void IAltazionHubModule.Init(IAltazionModuleHost host, string init)
        {

        }

        bool IAltazionHubModule.Poll()
        {
            return false;
        }

        public string ExecuteCommand(string command, string parameters)
        {
            return "OK";
        }
    }
}

Créer le projet

Depuis la version 3.0, les modules Hub sont uniquement des composants développés en .net standard 2.0 et supérieur. Pour créer un nouveau module, créez tout simplement un projet assembly .net standard 2.0.

Dans Visual Studio, vous pouvez créer un projet de "Bibilothèque de classe .net standard 2.0".

visual studio

Si vous utilisez un autre IDE, la commande

dotnet new classlib -f netstandard2.0

vous permettra de créer le projet.

dotnet new classlig

Réferencer les nugets

Vous devrez ensuite ajouter les nugets Altazion Hub à votre projet.

Implémenter l'interface

Ecrire le fichier manifeste

Vous devrez ensuite écrire un fichier manisfest en json pour déclarer votre module auprès du service de déploiement. Ce fichier est nécessaire à la fois pour un déploiement sur un service Windows, un daemon Linux ou pour un déploiement via Docker, bien que son rôle soit légèrement différent en fonction de l'environnement.

Si vous utilisez Visual Studio, vous pouvez ajouter le catalogue de schéma de nos solutions dans votre IDE afin de pouvoir profiter d'Intellisense. Pour cela, allez dans le menu Outils>Options puis dans Editeur de texte > JSON > Schémas, et ajoutez notre catalogue de schémas :

visual studio

https://schemas.altazion.com/schema-catalog.json

Packager et déployer

Pour Docker

=> se baser sur l'image altazion/hub-host => copier le contenu de votre module dans /app/bin/ de cette image => créer votre docker file

FROM altazion/hub-host:latest AS base
WORKDIR /app
COPY "./" /app/bin/
ENTRYPOINT ["dotnet", "Altazion.Hub.Host.dll"]

Pour service Windows ou SystemD linux

Ajouter un service API

Implémenter l'interface supplémentaire

Pour déclarer votre module comme exportant une API, il vous faudra implémenter une seconde interface au niveau de votre module : Altazion.Hub.Common.IAltazionHubWebModule

Warning

Vous devez impérativement implémenter les deux interfaces sur la même classe.

Ajouter le(s) controleur(s)

Vous aurez ensuite simplement besoin d'ajouter vos controlleurs Web API :

  • Ajoutez une référence au nuget Microsoft.AspNetCore.Mvc.Core afin d'importer tous les types nécessaires
  • Puis créez une ou plusieurs classe(s) de type controleur Web API :
[Route("api/demo"), ApiController]
public class MonController : ControllerBase
{
    [Route("methode1"), HttpGet]
    public string Methode1()
    {
        return "OK";
    }
}

Implémenter une fonctionnalité spécifique

Zone Fonctionnalité
CRM Base données clients