Easy integrations via REST

Ce billet comporte un exemple permettant d’afficher dans des formulaires K2 des informations relatives aux pays (liste des pays, des monnaies, informations sur la population, la langue, la capitale etc.) en s’appuyant sur un service disponible publiquement.

Raphaël vous parlait précédemment du fonctionnement et de l’utilisation du connecteur REST permettant des intégrations avec beaucoup d’outils qui exposent leur service ainsi.

S’il est vrai qu’il n’y a pas de développement à faire côté K2, il est quand même nécessaire de disposer d’un fichier Swagger qui va décrire le service et s’il doit être construit, cela peut paraître un peu indigeste pour les citizen developers.

Pour faciliter ceci, le site communautaire de K2 vient d’inaugurer une nouvelle catégorie qui permet le partage et/ou le référencement de fichiers Swagger existants.

Nous allons voir dans ce billet comment utiliser ces ressources, en se basant sur un service REST qui peut être pratique et qui propose de retrouver diverses informations sur les pays du monde entier (code ISO, capitale, monnaie, langue, région, pays frontaliers, population…). Ce service est disponible sur le site restcountries.eu, mais le site ne propose pas de fichier Swagger accessible publiquement, donc nous pouvons remercier Igor qui a partagé sa création sur community.k2.com.

Récupération du .json

Si le fichier Swagger (.json) n’est pas accessible publiquement ou si vous souhaitez utiliser la version disponible sans bénéficier des éventuelles mises à jour, il suffit de récupérer son contenu (c’est un fichier texte). Dans le cas du projet d’Igor, vous pouvez récupérer le fichier json depuis la page du projet, en utilisant la fonction export sur la droite.

Récupération du fichier .json

Vous obtenez alors un fichier .zip qui contient, entre autres, un fichier nommé swagger.json. Ce fichier correspond à la description du service que l’on retrouve également dans la partie gris foncé de la page ci-dessus.

Si vous utilisez une version K2 Five, déposez ce fichier sur le système de fichiers de votre serveur K2. Si vous utilisez une version K2 Cloud, il faudra rendre ce fichier accessible via une URL publique afin que votre tenant K2 puisse y accéder.

Configuration du service REST

Maintenant que le fichier swagger est disponible, il reste simplement à le référencer au niveau de votre serveur/tenant K2. Pour cela, direction le K2 Management Site, partie Integration > Service Instances. On ajoute alors une nouvelle instance en cliquant sur le bouton Add, on choisit un nom d’affichage, une description et le Service Type REST :

Configuration de l’instance de service REST

Puis dans les paramètres plus spécifiques au service type sélectionné, il suffit de mettre l’adresse d’accès au fichier .json (une URL dans le cas de K2 Cloud, ou une URL ou un chemin local dans le cas de K2 Five) au niveau du champ Descriptor Location. Vous pouvez aussi cocher la case Generate Smartobjects for this Service instance afin que K2 vous génère l’ensemble des smartobjects relatifs à l’utilisation du service.

Fin de la configuration de l’instance du service REST

Après avoir validé, vous aurez un message de confirmation :

Message de confirmation de création

Puis on pourra constater la structure de smartobjects qui a été générée pour l’occasion dans la catégorie REST (uniquement si vous avez demandé la génération automatique) :

Liste des smo générés

Utilisation des smartobjects

Nous n’allons pas rentrer dans le détail de l’utilisation de chacune des propriétés renvoyées par ce service, mais voici quelques exemples.

1ère étape, créons une vue avec un contrôle auto-complete qui affiche la liste de tous les pays (leur nom standard et leur nom natif) :

Liste des pays

Il y a simplement à configurer la source de données du contrôle pour utiliser le smo GetAll (smo principal de ce service) avec les paramètres suivants :

Améliorons à présent notre vue pour récupérer des informations sur le pays sélectionné :

Récupération de quelques informations

On améliore notre vue en ajoutant une règle sur le changement de valeur du contrôle auto-complete :

Règle sur le changement de valeur de l’auto-complete

Un transfer data pour les données simples :

Transfer data

Puis le passage par l’appel d’une méthode de smartobject supplémentaire pour les données qui sont serializées (Currency et Language dans l’exemple). Pour celles-ci, il faudra utiliser la méthode Deserialize Typed Array de l’objet concerné et passant en entrée la valeur serializée :

Désérialisation

En espérant que vous trouverez pleins d’autres services REST intéressants sur l’espace communautaire de K2.

Happy K2ing!

jean

Directeur technique de K2 France depuis 2006 et passionné par les technologies, je travaille dans le monde du BPM et des applications métier depuis... que je travaille :). Vous pouvez également me suivre sur twitter, linkedin.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.