...
| API | variables | URL exemple |
|---|---|---|
| OAuth | url_authn_app_tickets | https://authn-app.univ.pc-scol.fr/cas/v1/tickets |
| IDT | url_api_idt | https://idt.univ.pc-scol.fr/api/idt/v1 |
| INS EXT | url_api_ins_ext | https://ins.univ.pc-scol.fr/api/ins/ext/v2 |
| INS Gestion | url_api_ins | https://ins.univ.pc-scol.fr/api/ins/v1 |
| PIECE EXT | url_api_piece_ext | https://piece.univ.pc-scol.fr/api/v5pie/ext/insv1 |
| CHC | url_api_chc | https://chc.univ.pc-scol.fr/api/chc/v6 |
| COC | url_api_coc | https://coc.univ.pc-scol.fr/api/coc/publication/v2 |
| PAI | url_api_pai | https://pai.univ.pc-scol.fr/api/v1 |
...
| URL (voir variables ci-dessus) | Module/API | Méthode | Utilisation |
|---|---|---|---|
url_authn_app_tickets?username=${username}&password=${password}&token=true | serveur OAuth | Récupération du Jeton JWT pour authentification des API | |
| url_api_idt/etablissements/${etab}/identites/apprenants?codeApprenant=${codeApprenant} | IDT | rechercherIdentiteApprenant | Rechercher des identité d'apprenants |
| url_api_ins_ext/gestion/inscription/${etab}/${codeApprenant} | INS EXT v2 | lireInscriptions | Récupération du dossier de l'apprenant et de ses inscriptions |
| url_api_ins/gestionetablissement/inscriptions/${etab}/${codeApprenantuuidApprenant}/${codeVoeu}/certificat-de-scolarite | INS Gestion | imprimerCertificatDeScolaritegenererCertificatDeScolarite | Récupération Génération du certificat de scolarité |
| url_api_piece_ext/etablissements/${etab}/codeApprenant/${codeApprenant}/codePeriode/${codePeriode}/codeChemin/${codeChemin}/photo | PIECE EXT | contenuPiecevisualiserPhoto | Récupération de la photo de l'étudiant |
url_api_chc/cursus-dca?codeApprenant={codeApprenant} | CHC | lireCursusApprenantlireCusrsuApprenant | Récupération du cursus |
| url_api_coc/etablissements/${etab}/periodes/${codePeriode}/apprenants/${codeApprenant}/chemins/${chemin} | COC | listerCursusPubliableApprenant | Récupération des notes et résultats de l'étudiant |
| url_api_coc/etablissements/${etab}/periodes/${codePeriode}/apprenants/${codeApprenant}/chemins/${chemin}/releves-de-notes | COC | listerReleveDeNotePubliableApprenant | Lister les relevés de notes publiables |
| url_api_coc/modeles-releves-notes/${idReleve}/apprenants/${codeApprenant}/chemins/${chemin}/releves-de-notes-et-resultats | COC | genererRelevesDeNotesEtResultatsPubliableApprenant | Générer un relevé de note |
| url_api_pai/pai/attestation-de-paiement/${etab}/${codeApprenant}/${codePeriode} | PAI | imprimerAttestationDePaiement | Récupération de l'attestation de paiement |
...
| Bloc de code |
|---|
POST https://authn-app.[univ].pc-scol.fr/cas/v1/tickets?username=[username]&password=[password]&token=true |
Le username et le password à passer sont ceux permettant d'identifier MDW auprès du serveur OAuth de Pégase.
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
# Forcer l'utilisation de la version 5.4.0 # /!\ IMPORTANT /!\ A vérifier avant chaque génération sous peine d'obtenir des imports non valides openapi-generator-cli version-manager set 5.4.0 # INSIDT EXT YAML npx @openapitools/openapi-generator-cli generate -i inscriptionidt-ext-api-v1-1.20.0-rc.yaml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.idt.invoker -p apiPackage=fr.univlorraine.pegase.idt.api.insext -p modelPackage=fr.univlorraine.pegase.idt.model.insext -p dateLibrary=java17-localdatetime # PIECEINS EXT YAMLEXT npx @openapitools/openapi-generator-cli generate -i pieceinscription-ext-api-v1v2-12.12.0-dev.20250424143719.yaml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.insext.invoker -p apiPackage=fr.univlorraine.pegase.insext.api.pieceext -p modelPackage=fr.univlorraine.pegase.insext.model.pieceext -p dateLibrary=java17-localdatetime # INS GESTION YAML npx @openapitools/openapi-generator-cli generate -i ins-gestion-api-v5v1-201.0.0-rc.yaml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.ins.invoker -p apiPackage=fr.univlorraine.pegase.ins.api.insgestion -p modelPackage=fr.univlorraine.pegase.ins.model.insgestion -p dateLibrary=java17-localdatetime # CHCPIECE EXT YAML npx @openapitools/openapi-generator-cli generate -i chcpiece-applicationext-api-v6v1-61.2.0.ymlyaml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.pieceext.invoker -p apiPackage=fr.univlorraine.pegase.pieceext.api.chc -p modelPackage=fr.univlorraine.pegase.pieceext.model.chc -p dateLibrary=java17-localdatetime # PAI npx @openapitools/openapi-generator-cli generate -i pai-api-v1-27.0.0.yaml -g java -o C:/tmp/openapi-generator/ -p # COC PUBLICATION YAML invokerPackage=fr.univlorraine.pegase.pai.invoker -p apiPackage=fr.univlorraine.pegase.pai.api -p modelPackage=fr.univlorraine.pegase.pai.model -p dateLibrary=java17-localdatetime # CHC npx @openapitools/openapi-generator-cli generate -i cocchc-publicationapplication-api-v2v6-26.08.0.yml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.chc.invoker -p apiPackage=fr.univlorraine.pegase.chc.api.coc -p modelPackage=fr.univlorraine.pegase.chc.model.coc -p dateLibrary=java17-localdatetime # PAI YAMLCOC npx @openapitools/openapi-generator-cli generate -i paicoc-publication-api-v1v2-212.01.0.yamlyml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.coc.invoker -p apiPackage=fr.univlorraine.pegase.coc.api.pai -p modelPackage=fr.univlorraine.pegase.coc.model.pai -p dateLibrary=java17-localdatetime |
Récupérer le code généré dans le projet
...
/ src/main/java/fr/univlorraine/pegase/api/src/main/java/fr/univlorraine/pegase/model{NOM_API}
Modification des classes générées
Dans les classes générées il faut remplacer l'annotation :
| Bloc de code |
|---|
@javax.annotation.Generated |
par
| Bloc de code |
|---|
@jakarta.annotation.Generated |
Si des erreurs persistent à la compilation ou dans l'IDE, il Il peut être nécessaire d'apporter des modifications au code généré.
...
Corriger l'assignation aux énumérations dans les constructeurs des classes qui le nécessite. Par exemple, le code :
Bloc de code this.canalCommunication = this.getClass().getSimpleName(); devient : this.canalCommunication = CanalCommunicationEnum.fromValue(this.getClass().getSimpleName());
et certaines lignes
Bloc de code this.type = this.getClass().getSimpleName(); deviennent : this.type = TypeEnum.fromValue(this.getClass().getSimpleName());
- Supprimer l'attribut est1 et la constante SERIALIZED_NAME_EST1 de la classe Periode
Remplacer dans les classes qui le nécessite, le code :
Bloc de code @javax.annotation.Generatedpar
@jakarta.annotation.Generatedfr.univlorraine.pegase.insext.model.PeriodeBloc de code
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
...