La version 2.11 d’Apache Hop (pour ma part cela ne fonctionne bien qu’à partir de la 2.12) introduit la possibilité de définir des connexions de type « REST » qui facilitent l’exploitation des API respectant ce formalisme via le transform « REST Client »
Auparavant, l’usage de la brique « REST Client » nécessitait de préciser à chaque mobilisation (GET, POST ou autre) l’URL complète (on pouvait bien évidement mettre en paramètre du projet l’URL de base que l’on complétait avec le endpoint souhaité) mais également de rappeler les différents éléments, notamment certaines valeurs d’entêtes de requête comme des token JWT
Désormais, il est possible de préciser au sein des « Connexion REST » certaines informations communes à tous les appels afin de limiter la configuration des étapes « REST Client »
Paramétrage de la connexion REST
Le paramétrage de cette connexion s’effectue dans le volet « Metadata » d’Apache Hop dans la rubrique « Rest connection »

Le nombre de paramètres reste limité mais il est notamment possible de préciser les entêtes utilisées pour l’accès à des ressources soumises à autorisations.
Dans le cas ci-dessous, la connexion définie permet de se connecter à l’API d’un outil de gestion de projet (Redmine) en précisant notamment une clef d’API. Cette clef est propre à chaque utilisateur Redmine (il peut être judicieux de créer un utilisateur Apache Hop) et perdure tant que l’utilisateur ne procède pas volontairement à sa réinitialisation. Dans ce cas simple de « jeton statique », il suffit de renseigner en dur dans la « Rest Connection » (ou via des paramètres du projet, c’est plus propre) l’URL du service à appeler et les valeurs permettant l’authentification.

Mobilisation de la connexion REST
Chaque connexion REST peut être mobilisée via le transform « Client REST ». La logique est identique à celle utilisée pour les étapes mobilisants des connexions de bases de données. On choisit la connexion à utiliser et on renseigne les éléments complémentaires. Dans notre cas, il s’agit à minima d’un endpoint, de la méthode HTTP et du nom du champ qui recevra le résultat de la requête.

Lors de l’appel REST, Apache Hop se chargera de fusionner les informations de la connexion (URL de base, informations d’entête) avec les informations spécifiques à la brique « client REST » pour réaliser la requête.

Configuration dynamique de la connexion REST
Le cas d’usage de token « Statique » évoqué précédemment n’est pas forcément représentatif de ce qui est aujourd’hui proposé aux usagers pour l’exploitation des API REST.
En effet, de nombreuses API disposent d’un mécanisme nécessitant de récupérer dynamiquement un token valable sur une durée limitée. Dans ce cas, le processus Apache Hop devra être réalisé en 2 temps :
- Réalisation d’un premier appel à l’API pour récupérer le token (par exemple, à partir d’un login et password) et renseignement des variables mobilisées pour la connexion REST
- Valorisation de la connexion paramétrée dynamiquement au travers des différents appels « Client REST » présents dans les pipeline exécutés en aval
Le processus global réalisé via un workflow ressemble à ceci :

Le processus de récupération du token et de paramétrage dynamique via des variables peut être réalisé sous cette forme :

A l’usage, l’ajout de cette possibilité de définition de connexion REST apporte un confort supplémentaire pour l’usage d’API REST même si la configuration « à la volée » de cette connexion nécessite encore l’établissement d’un processus qui demande un peu de rigueur.