Skip to content
Snippets Groups Projects
Select Git revision
  • php84
  • master default protected
  • 6.x
  • release_6.2.0
  • modif_maintenance_phtml
  • 6.0.x
  • detached2
  • detached
  • php82
  • feature_SearchAndSelectFilter
  • 5.x
  • 4.x
  • 7.2.0
  • 6.2.0
  • 7.1.0
  • 7.0.0
  • 1.1.1
  • 6.1.7
  • 6.1.6
  • 6.1.5
  • 6.0.16
  • 6.0.15
  • 6.1.4
  • 6.0.14
  • 6.1.3
  • 6.0.13
  • 6.1.2
  • 6.0.12
  • 6.1.1
  • 6.1.0
  • 6.0.11
  • 6.0.10
32 results

app

  • Clone with SSH
  • Clone with HTTPS
  • sygal-import-ws

    Que fait sygal-import-ws ?

    sygal-import-ws est un web service (ws) qui interroge les données présentes dans un SI (via des vues en base de données) et les met à disposition pour leur lecture via des requêtes GET.

    Technologies employées

    sygal-import-ws repose sur l'utilisation de :

    Installation

    Installation des dépendances

    Une fois les sources obtenues, il faut installer les packages requis par le ws.

    Cette installation se fait via composer (https://getcomposer.org/) :

    $ composer install

    Création du fichier "users.htpasswd"

    Ce fichier contient les utilisateurs/mot de passe autorisés à appeler le ws.

    Se placer dans le répertoire config des sources et lancer la commande suivante pour créer le fichier "users.htpasswd" contenant un utilisateur sygal-app dont le mot de passe va vous être demandé :

    $ htpasswd -c users.htpasswd sygal-app

    Si vous manquez d'idée pour le mot de passe, utilsez la commande suivante :

    $ pwgen 16 1 --symbols --secure

    Complétion des fichiers de config

    Deux fichiers situés dans le répertoire config ont besoin d'être complétés puis renommés :

    • local.php.dist : qui est notamment utilisé pour l'authentification.
      • clé htpasswd qui désigne le chemin du fichier "users.htpasswd" évoqué plus haut
    • database.local.php.dist : qui est utilisé pour la connection à la BDD.
      • clés host, dbname, port, user, password : les infos d'accès à la BDD.

    Une fois ces fichiers complétés, changer leur extension .php.dist en .php.

    Activer/désactiver le mode développement

    Passer en mode développement ouvre l'accès à l'interface de modification du ws. Cette fonctionnalité est réservée aux développeurs du ws.

    Attention: Le mode développement est INTERDIT EN PRODUCTION.

    Pour activer/désactiver le mode développement :

    $ composer development-enable
    $ composer development-disable

    Lancement du web service pour le dévelopement

    Solution 1 : le serveur interne PHP

    En phase de développement, la façon la plus simple consiste en l'utilisation du serveur interne de php :

    $ php -S 0.0.0.0:8080 -ddisplay_errors=0 -t public public/index.php

    Solution 2 : Docker

    Se placer à la racine des sources du ws pour lancer la commande suivante :

    $ docker-compose up -d --build

    Vérifier que le container sygal-import-ws-container figure bien dans la liste des containers lancés listés par la commande suivante (cf. colonne NAMES) :

    $ docker ps

    Le port sur lequel écoute le ws est indiqué dans la colonne PORTS. Par exemple, 0.0.0.0:8080->8080/tcp indique que le ws est accessible sur la machine hôte à l'adresse localhost:8080.

    Les services fournis

    Chaque vue en base de données peut être interrogée via un service dédié :

    • Acteur : localhost:8080/acteur
    • Doctorant : localhost:8080/doctorant
    • Individu : localhost:8080/individu
    • Role : localhost:8080/role
    • Source : localhost:8080/source
    • These : localhost:8080/these
    • Variable : localhost:8080/variable

    Exemple :

    $ curl --header "Accept: application/json" --header "Authorization: Basic xxxx" localhost:8080/variable

    Ou en https :

    $ curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/variable

    Remplacer xxxx par le token généré grâce à la commande suivante (le mot de passe est celui choisi lors de la commande htpasswd -c users.htpasswd sygal-app) :

    $ echo -n 'sygal-app:motdepasse' | base64

    L'interrogation directe de ces adresses va retourner l'intégralité des données du BDD. Afin d'obtenir les informations spécifiques à une donnée, il est possible d'ajouter son identifiant, exemple :

    $ curl --header "Accept: application/json" --header "Authorization: Basic xxxx" localhost:8080/variable/ETB_LIB_NOM_RESP

    Remarques complémentaires

    • Le web service ne répond qu'aux requêtes de type GET.
    • Le web service retourne du json seulement.