Faire un Service Web "MOCK" avec WSO2
Me voila parti pour mon 300ième billet dans la configuration WSO2. Avec cet ESB tout se fait assez simplement, il suffit de lire un peu la documentation et de parcourir l'espace communautaire.
Un des besoins liés aux interfaces temps réel est de "bouchonner" ou MOCK permettant de découpler deux applications pendant les recettes ou encore pendant le développement.
Sur WSO2, la manipulation la plus simple est la suivante :
- Stocker une réponse type dans un fichier XML
- Faire une feuille de style XSL à partir de cette réponse
- Paramétrer une séquence pour transformer la requête dans une réponse type et la renvoyer au client.
Bon je ne vous ferait pas l'affront de vous expliquer comment on réalise la première étape... Passons à la deuxième.
Feuille de style
Il faut créer une feuille de style XSL à partir d'une réponse SOAP standard. Pour cela il faut ajouter les lignes suivantes au début
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" /> <xsl:template match="/">
Et à la fin du fichier celles-là :
</xsl:template> </xsl:stylesheet>
Ensuite aller dans Service Bus > Local Entries
Copier le contenu de la feuille de style
La séquence
Ensuite aller dans Service Bus > Sequences
Cliquer sur "Add Sequence"
Ensuite Renseigner le nom de la séquence (ex. mock) puis cliquer sur "Add Child > Filter >In"
Ajouter au noeud "In" puis cliquer sur "Child> Transform > XSLT"
Dans la partie XSLT Mediator, cliquer sur "Configuration Registry"
Sélectionner l'entrée précédemment enregistrée dans le registre
Ajouter à la suite du workflow une property (In>Add Child > Core >Property ) avec les valeurs suivantes
Ensuite ajouter un header (In>Add Child > Transform >Header )
Renseigner les valeurs suivantes :
Ajouter dans le workflow une étape Send ( il faut bien renvoyer le résultat )
Ne rien renseigner dans cette partie
Enfin ajouter l'étape Out
Cliquer sur "'Enregistrer"
Le proxy de service web
A cette étape, nous pouvons soit modifier un service web existant pour assigner notre séquence fraîchement crée, soit crée une nouvelle qui ne servira qu'à ça. Dans notre cas, j'aborderai la deuxième possibilité ( de toute façon, ce sont les mêmes écrans ...)
Cliquer sur WebServices > Add > Proxy Service
Cliquer sur Custom Proxy puis renseigner le nom du service
Cliquer sur "Next".
Assigner la séquence
Cliquer Sur "Next" Puis "Finish"
Maintenant il ne reste plus qu'à tester avec SOAPUI ou tout autre client SOAP.