Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • release_3.0.0
  • test
  • feature_pre_sql
  • develop
  • 3.0.1
  • 3.0.0
  • 2.3.0
  • 2.2.0
  • 2.1.0
  • 2.0.0
  • 1.3.7
  • 1.3.6
  • 1.3.5
  • 1.3.4
  • 1.3.3
  • 1.3.2
  • 1.3.1
  • 1.3.0
  • 1.2.6
  • 1.2.5
  • 1.2.4
  • 1.2.3
  • 1.2.2
  • 1.2.1
25 results

sygal-import-ws

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

    sygal-import-ws est une API REST qui retourne les données présentes dans des tables SYGAL_* d'Apogée ou de Physalis via des requêtes GET.

    Installation

    Cf. INSTALL.md.

    Lancement du web service pour le dévelopement

    • Construction de l'image
    PHP_VERSION=8.0 \
    docker build \
    --build-arg HTTP_PROXY \
    --build-arg HTTPS_PROXY \
    --build-arg NO_PROXY \
    --build-arg PHP_VERSION \
    -t sygal-import-ws-image-php${PHP_VERSION} \
    .
    • Démarrage du container :
    docker-compose up sygal-import-ws
    • Vérifier que le container sygal-import-ws-container-php8.0 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:443->8443/tcp indique que le ws est accessible sur la machine hôte à l'adresse https://localhost:8443.

    Les services fournis

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

    • /structure
    • /etablissement
    • /ecole-doctorale
    • /unite-recherche
    • /individu
    • /doctorant
    • /these
    • /these-annee-univ
    • /role
    • /acteur
    • /origine-financement
    • /financement
    • /titre-acces
    • /variable

    Autres services :

    • /version : permet de connaître le numéro de version du web service (ex : '2.3.0')

    Versionning de l'API

    L'API existe en plusieurs versions coexistantes, veillez à spécifier la version correcte dans l'URL. Prenez toujours la version la plus récente.

    Exemple de requête pour la version 2 : https://localhost:8443/v2/version/latest.

    Interrogation avec curl

    Exemple :

    curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/v2/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

    Il se peut que vous soyez obligé de contourner le proxy en faisant ceci :

    export no_proxy=localhost

    L'interrogation d'un service sans paramètre va retourner l'intégralité des données concernées.

    Afin d'obtenir les informations spécifiques à une donnée, il est possible d'ajouter son identifiant, exemple :

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

    Pour mettre en forme le JSON retourné et faciliter la lecture, une solution est d'utiliser python:

    curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/v2/variable | python3 -m json.tool

    Services acceptant un paramètre

    Aucun service n'accepte de paramètre GET, sauf ceux qui suivent.

    /acteur

    Ce service accepte un paramètre supplémentaire : un identifiant de thèse (source code) peut être spécifié pour obtenir les acteurs de cette seule thèse. Exemple :

    curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxxx" https://localhost:8443/v2/acteur?these_id=13111

    /doctorant

    Ce service accepte un paramètre supplémentaire : un identifiant de thèse (source code) peut être spécifié pour obtenir le doctorant de cette thèse. Exemple :

    curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxxx" https://localhost:8443/v2/doctorant?these_id=13111

    Ligne de commande

    La ligne de commande suivante permet de mettre à jour en base de données les tables SYGAL_* à partir des vues V_SYGAL_* (ces tables sont les sources des données retournées par l'API) :

    php public/index.php update-service-tables --verbose