...
| Info |
|---|
| Le paramètre pegase.accesstoken.duration (application.properties) permet d'indiquer la durée (en heure) de conservation du token. |
APIs utilisées
Exemple de configuration
Voici un exemple des URLs à configurer dans la vue "Configuration" de l'application
| API | variables | URL exemple |
|---|---|---|
| OAuth | url_authn_app_tickets | https://authn-app.univ.pc-scol.fr/cas/v1/tickets |
| INS | url_api_ins | https://ins.univ.pc-scol.fr/api/v5/ins |
| 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/v1 |
| PAI | url_api_pai | https://pai.univ.pc-scol.fr/api/v1 |
Méthodes utilisées
| URL (voir variables ci-dessus) | Module | Méthode | Utilisation |
|---|---|---|---|
url_authn_app_tickets | serveur OAuth | Récupération du Jeton JWT pour authentification des API | |
| url_api_ins/gestion/inscription/${etab}/${codeApprenant} | INS | lireInscriptions | Récupération du dossier de l'apprenant et de ses inscriptions |
| url_api_ins/gestion/inscriptions/${etab}/${codeApprenant}/${codeVoeu}/certificat-de-scolarite | INS | imprimerCertificatDeScolarite | Récupération du certificat de scolarité |
| url_api_ins/gestion/inscriptions/${etab}/${codeApprenant}/${codeVoeu}/${codePiece}/contenu | INS | contenuPiece | Récupération de la photo de l'étudiant |
url_api_chc/cursus-dca?codeApprenant={codeApprenant} | CHC | lireCursusApprenant | 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_pai/pai/attestation-de-paiement/${etab}/${codeApprenant}/${codePeriode} | PAI | imprimerAttestationDePaiement | Récupération de l'attestation de paiement |
Tester une API
Nous allons voir comment tester le bon fonctionnement d'une API en la requêtant "à la main".
| Info |
|---|
| Plutôt que d'utiliser la commande "curl" pour executer les requêtes http, il possible d'utiliser un outil comme Insomnia afin de se faciliter la tâche. |
Appeler une API s'effectue via une requête HTTP.
Pour être autorisé à appeler l'API d'un module Pégase, il faut préalablement avoir récupéré un token d'authentification.
Par exemple pour tester la méthode lireInscriptions de l'API INS (qui retourne la quasi totalité du dossier), il faut :
- Faire un premier appel (POST) au serveur OAuth pour récupérer le token
- Utiliser ce token pour appeler l'API (GET)
Récupération du token
| Bloc de code |
|---|
POST https://authn-app.[univ].pc-scol.fr/cas/v1/tickets?username=[username]&password=[password] |
Le username et le password à passer sont ceux permettant d'identifier MDW auprès du serveur OAuth de Pégase.
Ces informations correspondent aux paramètres suivant dans application.properties :
- pegase.accesstoken.url
- pegase.accesstoken.username
- pegase.accesstoken.password
Appel de l'API
| Bloc de code |
|---|
GET https://ins.[univ].pc-scol.fr/api/v5/ins/gestion/inscription/[codeEtablissement]/[codeApprenant]/ |
Ajouter la chaîne "Bearer " (attention à bien ajouter l'espace) au début du token et le passer dans un header nommé "Authorization".
| Info |
|---|
| Via Postman le passage du token se fait facilement depuis l'onglet "Authorization" (Type "OAuth 2.0") |
L'url de l'API et le code établissement correspondent aux paramètres suivant dans application.properties :
- pegase.api.ins.url
- pegase.etablissement
Génération des classes clientes java
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.
...
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
APIs utilisées
Exemple de configuration
Voici un exemple des URLs à configurer dans la vue "Configuration" de l'application
...
Méthodes utilisées
...
url_authn_app_tickets
...
url_api_chc/cursus-dca?codeApprenant={codeApprenant}
...
lireCursusApprenant
...
Tester une API
Nous allons voir comment tester le bon fonctionnement d'une API en la requêtant "à la main".
| Info |
|---|
| Plutôt que d'utiliser la commande "curl" pour executer les requêtes http, il possible d'utiliser un outil comme Insomnia afin de se faciliter la tâche. |
Appeler une API s'effectue via une requête HTTP.
Pour être autorisé à appeler l'API d'un module Pégase, il faut préalablement avoir récupéré un token d'authentification.
Par exemple pour tester la méthode lireInscriptions de l'API INS (qui retourne la quasi totalité du dossier), il faut :
- Faire un premier appel (POST) au serveur OAuth pour récupérer le token
- Utiliser ce token pour appeler l'API (GET)
Récupération du token
| Bloc de code |
|---|
POST https://authn-app.[univ].pc-scol.fr/cas/v1/tickets?username=[username]&password=[password] |
Le username et le password à passer sont ceux permettant d'identifier MDW auprès du serveur OAuth de Pégase.
Ces informations correspondent aux paramètres suivant dans application.properties :
- pegase.accesstoken.url
- pegase.accesstoken.username
- pegase.accesstoken.password
Appel de l'API
| Bloc de code |
|---|
GET https://ins.[univ].pc-scol.fr/api/v5/ins/gestion/inscription/[codeEtablissement]/[codeApprenant]/ |
Ajouter la chaîne "Bearer " (attention à bien ajouter l'espace) au début du token et le passer dans un header nommé "Authorization".
| Info |
|---|
| Via Postman le passage du token se fait facilement depuis l'onglet "Authorization" (Type "OAuth 2.0") |
L'url de l'API et le code établissement correspondent aux paramètres suivant dans application.properties :
...