Créer une API
Les smartflows peuvent être utilisés indépendamment de Vision pour constituer une API.
Les connecteurs permettent de regrouper plusieurs smartflows dans un répertoire, ils permettent également de partager des paramètres (clés / valeurs) communs aux différents smartflows.
Pour créer une API, il faut donc créer le connecteur et lui associer autant de smartflows qu'il y aura de routes à exposer.
Une fois les smartflows créés, il faudra les rendre publiques et configurer les signatures des routes.
Les smartflows créés pour de l'usage interne exposent également une route, le mécanisme de création reste le même.
Les connecteurs
Pour créer un connecteur, il suffit de faire un clic droit sur l'onglet Connecteurs situé dans l'onglet APIsation de l'explorateur du Studio et choisir l'option Ajouter un connecteur.
Une fois le connecteur créé, il est possible d'y ajouter des smartflows (clic droit sur le connecteur et choisir Ajouter un smartflow).
Paramètres du connecteur
Il est également possible d'éditer les paramètres du connecteur qui seront présents dans tous les smartflows associés (clic droit sur le connecteur et choisir Editer les paramètres).
Mots de passe
Dans cette même section, il est possible de créer des secrets (mots de passe pour se connecter à des API ou à une base de données).
Les mots de passe seront chiffrés en base de données.
il est fortement conseillés de stocker tous les mots de passe dans cette section.
Utilisation dans les smartflows
Signature de la route
Pour exposer la route, certains paramètres doivent être renseignés, ces paramètres sont présents dans l'onglet Inspecteur du smartflow.
Publique
La première étape consiste à rendre le smartflow publique, ce qui permettra de créer une nouvelle route accessible depuis l'extérieur, dans le cas contraire, le smartflow ne sera utiliser que pour de l'usage interne.
URL, Verbe et Paramètre de PATH
Le paramétrage de l'URL contient 3 parties:
- Le Nom de la route qui sera présente après l'URL du serveur
- Le Verbe (GET / POST / PUT / PATH / DELETE) pour paramétrer la méthode HTTP.
- Les paramètres de path qui permettront de venir compléter le path de l'URL avec des valeurs dynamiques, ces paramètres seront exploitables dans le smartflow.
`
curl --location 'url/api/connectors/Lister_les_voitures/Tesla'
Paramètres de requête
Les paramètres de requête permettront de venir compléter l'URL avec des valeurs dynamiques, ces paramètres seront exploitable dans le smartflow.
curl --location 'url/api/connectors/Lister_les_voitures/Tesla?output=voiture'
Body
Le body va permettre de renseigner le corps de la requête.
Il peut être composé de différentes manières.
Body avec un seul objet
Permet d'injecter un objet (de type Smart Object).
curl --location 'url/api/connectors/Creer_une_voiture' \
--header 'Content-Type: application/json' \
--data '{
"Nom": "Tesla"
}'
Body avec plusieurs variables
Permet d'injecter un objet composé dynamiquement par un système de clés / valeurs
curl --location 'url/api/connectors/Creer_une_voiture' \
--header 'Content-Type: application/json' \
--data '{
"Nom": "Tesla",
"VerifierDoublon": true
}'
body avec variables form-data
Permet d'uploader un fichier et exploiter ce fichier dans le smartflow.
curl --location 'url/api/connectors/Importer_des_voitures' \
--form 'csv=@"/home/user/Bureau/voitures.csv"'
Headers
Les headers vont permettre de renseigner l'en-tête de la requête via un système de clés / valeurs.
Ces valeurs seront accessibles dans le smartflow.
curl --location 'url/api/connectors/Lister_mes_voitures' \
--header 'UserID: cb775aae-dd85-4b8b-8ca6-e6576fdb5d4a'
Authentifications et autorisations
Il existe deux façons de sécuriser les routes.
Utiliser l'authentification intégrée avec JWT
Cette méthode utilise le système d'authentification interne à Vision KeyCloak, un jeton devra être injecté dans les headers de la requête, jeton récupéré via la route d'authentification.
Il est possible de restreindre les autorisations avec les groupes de sécurité.
Appel de la route d'authentification KeyCloak
Appel de la route avec injection du jwt dans les headers
curl --location 'url/api/connectors/Lister_les_voitures/Tesla' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJCbzA2dTVPV004MmViaFM5N2lZVGRWbXpvOW5RVS04aX...
Utiliser l'authentification webhook
Cette méthode permet de bypasser le système d'authentification interne à Vision et de sécuriser la route via l'injection d'un token dans les headers qui sera définie directement dans le smartflow.
Appel de la route avec injection du token dans les headers
curl --location 'url/api/connectors/Lister_les_voitures/Tesla' \
--header 'X-API-TOKEN: token_value'