Pages enfant
  • MDWP -2- APIs Pégase

Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=1042055173) de cette page.

afficher les différences afficher l'historique de la page

Vous regardez la version actuelle de cette page. (v. 1) afficher la version suivante »

Architecture

MDW est autorisé à interroger les APIs Pégase en s'identifiant à l'aide d'un token (JWT). Ce dernier est obtenu en s'authentifiant (id + pwd) auprès du serveur OAuth dédié.


Ce token a une durée de vie limitée. MDW garde donc ce token en mémoire et vérifie régulièrement sa validité afin de le renouveller si nécessaire.

Le paramètre pegase.accesstoken.duration (application.properties) permet d'indiquer la durée (en heure) de conservation du token.


Génération des classes clientes

MDW embarque directement dans son code  . Il n'y a pas de dépendance vers une librairie externe.

Pour générer ces classes java, OpenAPI Generator est utilisé depuis la v1.

Afin de permettre de rejouer cette procédure voici la démarche utilisée lors du développement.

Installation d'OpenAPI Generator

Télécharger la version zip de node (https://nodejs.org/en/download/) et dézipper puis :

# Se rendre dans le répertoire d'installation
cd C:/node-v14.16.0-win-x64
# Installer openapi-generator-cli
npm install @openapitools/openapi-generator-cli
npm install @openapitools/openapi-generator-cli -g
# Forcer l'utilisation de la version 4.3.1
openapi-generator-cli version-manager set 4.3.1
# Aide sur la config
npx @openapitools/openapi-generator-cli config-help -g java

Génération du client java

Génération du client java à partir du contrat ins-gestion-api-v5-2.1.0.yaml
openapi-generator-cli generate -i ins-gestion-api-v5-2.1.0.yaml -g java -o C:/tmp/openapi-generator/ -p apiPackage=fr.univlorraine.pegase.api.insgestion -p modelPackage=fr.univlorraine.pegase.model.insgestion -p dateLibrary=java8-localdatetime

Récupérer le code généré dans le projet

  • Si ajout/maj d'une nouvelle api, récupérer les classes des répertoires :

    • / src/main/java/fr/univlorraine/pegase/api/{NOM_API}

    • /src/main/java/fr/univlorraine/pegase/model/{NOM_API}

  • Si pas déjà récupérés précédemment, copier également les classe à la racine des répertoires :

    • src/main/java/fr\univlorraine/pegase/api

    • src/main/java/fr/univlorraine/pegase/api/auth

  • Attention : Ne pas prendre les fichier situés directement dans src\main\java\fr\univlorraine\pegase\api si on les a déjà récupéré (via une autre API) car on que ne veut pas les écraser (car cela écraserait les modifications pour ApiClient). Idem pour le répertoire src\main\java\fr\univlorraine\pegase\api\auth.

  • récupérer dans le répertoire E:\tmp\openapi-generator\src le code utile et le copier dans le projet :

Implémentation

Voici des exemples d'appels aux APIs effectués grâce aux classes générées plus ci-dessus.






  • Aucune étiquette