Nous avions découvert dans un cas bien particulier, une anomalie lors de la génération d’un swagger. Les déclarations des structures de données pouvaient ne pas correspondre aux déclarations dans les procédures exposées. Pour rappel, le swagger est le fichier décrivant un webservice REST, généré lors du déploiement du service.
IBM vient de publier le correctif – Apar SE70166
Ptf en fonction des versions à télécharger sur https://www-945.ibm.com/support/fixcentral/ :
R710 SI68894
R720 SI68864
R730 SI68865
Le problème rencontré :
Pour l’exemple, nous allons prendre un programme de service comportant un seul module, et deux procédures qui seront toutes les deux exportées et déployées en tant que Webservice REST.
Ce module comporte 2 procédures, ayant :
1 paramètre en entrée – CodIn
et 1 DS en sortie MaDSOut1
Ces 2 DS sont décrites par référence avec le même nom de modèle (Modele1), mais déclarés au niveau de chaque procédure.
Modele1 de ProcGet1 n’a pas la même description que Modele1 de ProcGet2.
Lors du déploiement du webservice en type REST, en sélectionnant l’option pour utiliser les noms de paramètres des DS,
le swagger ne définira qu’une seule fois la DS MaDSOut1 et attribuera la même déclaration dans les deux méthodes du service :
Le swagger est correct pour le retour de la méthode PROCGET1, par contre la structure décrite en sortie de PROCGET2 ne correspond pas au retour de la procédure.
Après application de la ptf corrective, le swagger comporte bien des déclarations différentes pour chaque structure MaDSOut1 :
Pour la procédure ProcGet1 :
et pour la procédure ProcGet2, nous avons bien cette fois, une description identique à la procédure :
Nous préconisons d’éviter d’utiliser, dans des procédures différentes, des mêmes noms de paramètre si les descriptions sont différentes. Cependant, ces genres de cas peuvent arriver sur des programmes de service ayant subis plusieurs maintenances. Si vous souhaitez exposer un tel programme en tant que webservice, sans réécrire la partie déclarative, vérifiez bien avant que vous avez le bon niveau de Ptf…