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.

...

APIvariablesURL exemple
OAuth
url_authn_app_ticketshttps://authn-app.univ.pc-scol.fr/cas/v1/tickets
IDTurl_api_idthttps://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 Gestionurl_api_inshttps://ins.univ.pc-scol.fr/api/ins/v1
PIECE EXTurl_api_piece_exthttps://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_cochttps://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/APIMéthodeUtilisation

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}IDTrechercherIdentiteApprenantRechercher des identité d'apprenants
url_api_ins_ext/gestion/inscription/${etab}/${codeApprenant}INS EXT v2lireInscriptionsRécupération du dossier de l'apprenant et de ses inscriptions
url_api_ins/gestionetablissement/inscriptions/${etab}/${codeApprenantuuidApprenant}/${codeVoeu}/certificat-de-scolariteINS GestionimprimerCertificatDeScolaritegenererCertificatDeScolariteRécupération Génération du certificat de scolarité
url_api_piece_ext/etablissements/${etab}/codeApprenant/${codeApprenant}/codePeriode/${codePeriode}/codeChemin/${codeChemin}/photoPIECE EXTcontenuPiecevisualiserPhotoRé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}COClisterCursusPubliableApprenantRécupération des notes et résultats de l'étudiant
url_api_coc/etablissements/${etab}/periodes/${codePeriode}/apprenants/${codeApprenant}/chemins/${chemin}/releves-de-notesCOClisterReleveDeNotePubliableApprenantLister les relevés de notes publiables
url_api_coc/modeles-releves-notes/${idReleve}/apprenants/${codeApprenant}/chemins/${chemin}/releves-de-notes-et-resultatsCOCgenererRelevesDeNotesEtResultatsPubliableApprenantGénérer un relevé de note
url_api_pai/pai/attestation-de-paiement/${etab}/${codeApprenant}/${codePeriode}PAIimprimerAttestationDePaiementRé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
languagebash
titleGénération des clients java à partir des yaml
# 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.Generated

    par 

    Bloc de code@jakarta.annotation.Generatedfr.univlorraine.pegase.insext.model.Periode

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

...