Skip to main content

Visual Studio Template

Questo pacchetto serve per rendere disponibile un nuovo template su Visual Studio (o dotnet CLI) da utilizzare come base di partenza per creare un adapter custom.

L'id del pacchetto è Ipaas.Adapter.Template.

Per scaricare il pacchetto, cliccare qui;

Installazione

Per l'installazione del template, posizionarsi nella stessa cartella del file .nupkg e lanciare il comando:

dotnet new install <PACKAGE_TEMPLATE_NAME>.nupkg

Alla fine del comando, sarà già possibile creare progetti con questo template: aprire visual studio e cercare il template appena installato con il nome di Ipaas Adapter:

Visual Studio New Project Template

Per disinstallare il template:

dotnet new uninstall Ipaas.Adapter.Template

Dipendenze

Questo template è basato su .NET8 ed utilizza i seguenti pacchetti nuget:

  • Newtonsoft.Json: utilizzato per la serializzazione e deserializzazione di oggetti JSON
  • Swashbuckle.AspNetCore: utilizzato per avere un'interfaccia grafica per testare le API
  • AspNetCore.Authentication.ApiKey: utilizzato per l'autenticazione tramite API Key

Struttura

Descriziamo brevemente la struttura del template

Autenticazione

L'autenticazione implementata è basata su API Key: di default viene letto il valore della chiave da un file di configurazione con chiave ApiKey e come header controlla la presenza della chiave x-api-key, ma è possibile implementare la logica che si preferisce.

Per cambiare tale logica basterà modificare il file ApiKeyProvider.cs presente nella cartella Auth.

Controller

É presente un controller di esempio di tipo Egress, che implementa la ricezione di un messaggio e ne restituisce la risposta così come Flowlyze si aspetta. Di base, la struttura di un endpoint di Egress sarà sempre la stessa:

  • Controllo di coerenza del messaggio ricevuto
  • Skip dei messaggi da non processare
  • Processione del messaggio
  • Restituzione della risposta

Il controller di tipo Ingress è vuoto poichè può essere implementato a seconda delle esigenze e può ritornare un qualsiasi dato.

Servizi

Al suo interno c'è un servizio di esempio che implementa la logica di business per processare il messaggio ricevuto.

É presente anche una logica di validazione per mostrare come devono essere gestiti gli errori di ogni singolo messaggio: questa logica deve essere utilizzata per ogni tipologia di problema, non solo per la validazione.

Troviamo anche l'utilizzo di una classe che rappresenta gli header che possono essere presenti nella chiamata da Flowlyze verso l'adapter.

Esempio richiesta

All'interno della soluzione è presente un file ExampleRequest.http con la quale è possibile eseguire direttamente delle chiamate di esempio all'adapter con già tutto preconfigurato (url, apikey, mesaggio) Il risultato della chiamata mostrerà una risposta che contiene due messaggi: uno con successo e uno con errore.