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/gestion/inscriptionsetablissement/${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

# IDT   
npx @openapitools/openapi-generator-cli generate -i idt-api-v1-1.0.0-rc.yaml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.idt.invoker -p apiPackage=fr.univlorraine.pegase.idt.api -p modelPackage=fr.univlorraine.pegase.idt.model -p dateLibrary=java17-localdatetime

# INS EXT EXT 
npx @openapitools/openapi-generator-cli generate -i inscription-ext-api-v2-2.12.0-rcdev.20250424143719.yaml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.insext.invoker -p apiPackage=fr.univlorraine.pegase.insext.api -p modelPackage=fr.univlorraine.pegase.insext.model -p dateLibrary=java17-localdatetime

# INS 
npx @openapitools/openapi-generator-cli generate -i ins-api-v1-1.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 -p modelPackage=fr.univlorraine.pegase.ins.model -p dateLibrary=java17-localdatetime

# PIECE EXT 
npx @openapitools/openapi-generator-cli generate -i piece-ext-api-v1-1.2.0.yaml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.pieceext.invoker -p apiPackage=fr.univlorraine.pegase.pieceext.api -p modelPackage=fr.univlorraine.pegase.pieceext.model -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 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 chc-application-api-v6-6.8.0.yml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.chc.invoker -p apiPackage=fr.univlorraine.pegase.chc.api -p modelPackage=fr.univlorraine.pegase.chc.model -p dateLibrary=java17-localdatetime

# COC
npx @openapitools/openapi-generator-cli generate -i coc-publication-api-v2-2.1.0.yml -g java -o C:/tmp/openapi-generator/ -p invokerPackage=fr.univlorraine.pegase.coc.invoker -p apiPackage=fr.univlorraine.pegase.coc.api -p modelPackage=fr.univlorraine.pegase.coc.model -p dateLibrary=java17-localdatetime

...

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

  • /src/main/java/fr/univlorraine/pegase/model

Modification des classes générées

  • {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

...