Projet MonDossierWeb
Pages enfant
  • MDWP -2- APIs Pégase

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Sommaire

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é.

...

Info
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 les classes java clientes utilisées pour interroger les APIs. Il n'y a pas de dépendance vers une librairie externe.

...

Afin de permettre de rejouer cette procédure si nécessaire, 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 :

Bloc de code
# 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

Exemple pour générer les classes de clients java des principales API :

...

Bloc de code
languagebash
titleGénération des clients java à partir des yaml
# INS GESTION YAML
npx @openapitools/openapi-generator-cli generate -i ins-gestion-api-v5-2.2.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 
 
# CURSUS YAML
npx @openapitools/openapi-generator-cli generate -i chc-application-api-v5-1.0.0.yml -g java -o C:/tmp/openapi-generator/ -p apiPackage=fr.univlorraine.pegase.api.chc -p modelPackage=fr.univlorraine.pegase.model.chc -p dateLibrary=java8-localdatetime --skip-validate-spec
 
# PAI YAML 
npx @openapitools/openapi-generator-cli generate -i pai-api-v1-2.1.2.yaml -g java -o C:/tmp/openapi-generator/ -p apiPackage=fr.univlorraine.pegase.api.pai -p modelPackage=fr.univlorraine.pegase.model.pai -p dateLibrary=java8-localdatetime --skip-validate-spec

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

Pour chaque 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}

Implémentation

Pour des exemples d'appels aux APIs effectués grâce aux classes générées ci-dessus, voir le code source du PegaseService sur github : https://github.com/EsupPortail/esup-mdw-pegase/blob/master/src/main/java/fr/univlorraine/mondossierweb/service/PegaseService.java

...