Commit 305b6285 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Corrections de la doc développeur + nouvelle doc apigility

parent f46674e1
Loading
Loading
Loading
Loading

doc/apigility.md

0 → 100644
+40 −0
Original line number Diff line number Diff line
Utiliser l'interface d'admin Apigility
======================================
    
Ouvrir l'interface d'admin
--------------------------
    
- Lancer si besoin le web service dans Docker :
  `docker-compose up sygal-import-ws`  

- Passer en mode développement :
  `docker-compose exec sygal-import-ws vendor/bin/zf-development-mode enable`   
  
- Ouvrir l'interface d'admin dans un navigateur, exemple :
  `https://localhost:8443`
  
  NB: le numéro de port dépend de la config `docker-compose.yml`, faites un `docker ps` pour le connaître.
  
- Autoriser l'interface d'admin à écrire dans les fichiers de config
  du web service :
  `docker-compose exec sygal-import-ws chown -R www-data:www-data module/ImportData/config` 

Modification de l'API
---------------------

- Le cas échéant, faire les modifications nécessaires sur l'API.

Fermer l'interface d'admin
--------------------------

- Rétablir les autorisations d'accès au fichiers :
  `sudo chown -R ${USER}:${USER} module/ImportData/config` 
  
- Ne pas oublier de désactiver le mode développement :
  `docker-compose exec sygal-import-ws vendor/bin/zf-development-mode disable`

Test
----

- Interroger l'API pour vérifier les modifs, exemple :
`curl --insecure --header "Accept: application/json" --header "Authorization: Basic c3lnYWwtYXBwOmF6ZXJ0eQ==" https://localhost:8443/doctorant`
+16 −33
Original line number Diff line number Diff line
@@ -8,51 +8,34 @@ Ajouter un champ dans un service

Exemple : ajouter l'INE des doctorants.

Marche à suivre :
### Marche à suivre

- Dans la base de données :
- Dans la base de données source (ex: Apogée) :

    - Modifier dans la base de données source (ex: Apogée) la vue `SYGAL_DOCTORANT` pour ajouter la 
      colonne.
    - Modifier la vue `V_SYGAL_DOCTORANT` pour ajouter la nouvelle colonne.

    - Modifier la vue `SYGAL_DOCTORANT` pour ajouter la nouvelle colonne, exemple : 
    `alter table SYGAL_DOCTORANT add INE VARCHAR(20);`

- Dans les sources PHP :

    - Mettre à jour le mapping Doctorant dans le fichier  
      `module/ImportData/src/V1/Entity/Db/Mapping/ImportData.V1.Entity.Db.Doctorant.dcm.xml` 
      
    - Mettre à jour l'entité Doctorant dans le fichier 
    - Ajouter la nouvelle propriété `$ine` ainsi que son getter associé `getIne()` dans la classe d'entité   
      `module/ImportData/src/V1/Entity/Db/Doctorant.php`
       
      NB: pas besoin d'accesseurs, les colonnes étant découvertes automatiquement
      via le mapping.

- Via l'interface graphique d'admin Apigility
    
    - Lancer le web service dans Docker :
      `docker-compose up sygal-import-ws`  
   
    - Passer en mode développement :
      `docker-compose exec sygal-import-ws vendor/bin/zf-development-mode enable`   
      
    - Ouvrir l'interface d'admin dans un navigateur :
      `https://localhost:8443`
      NB: pas besoin de setter puisqu'il s'agit d'une vue en base de données.

      NB: le numéro de port dépend de la config `docker-compose.yml`.
### Tests

    - Autoriser l'interface d'admin à écrire dans les fichiers de config
      du web service :
      `sudo chown -R www-data:ww-data module/ImportData/config`
   
    - Sélectionner le service "Doctorant" et aller dans l'onglet "Fields"
      pour ajouter le champ `ine`.
    
    - Rétablir les autorisations d'accès au fichiers :
      `sudo chown -R gauthierb:gauthierb module/ImportData/config`
- En ligne de commande :

    - Ne pas oublier de désactiver le mode développement :
      `docker-compose exec sygal-import-ws vendor/bin/zf-development-mode disable`
    - Lancer si besoin le web service dans Docker :
      `docker-compose up sygal-import-ws`  
   
- En ligne de commande :
    - Lancer le script PHP de remplissage des tables `SYGAL_*` à partir des vues `V_SYGAL_*` :
      `docker-compose exec sygal-import-ws php public/index.php update-service-tables --services=these --verbose`
  
    - Vérifier que le nouveau champ figure dans la réponse du web service, ex :
    `curl --insecure --header "Accept: application/json" --header "Authorization: Basic c3lnYWwtYXBwOmF6ZXJ0eQ==" https://localhost:8443/doctorant`