Skip to content
Snippets Groups Projects
Select Git revision
  • main
  • update_github_actions
  • 144_rocky8_support
  • 195-update-pdk-to-300
  • 144-rocky8
  • add_test_github_test_workflow
  • pdk_2.4.0
  • fix_unclosed_let_block_in_defines_client_spec
  • master default protected
  • validation_fixes
  • freeradius_3_0_21_config_updates
  • data_types
  • PrepareBuster
  • travis
  • 4.0.1
  • 4.0.0
  • 3.9.2
  • 3.9.1
  • 3.9.0
  • 3.8.2
  • 3.8.1
  • 3.8.0
  • 3.7.0
  • 3.6.0
  • 3.5.0
  • 3.4.3
  • 3.4.2
  • 3.4.1
  • 3.4.0
  • 3.3.0
  • 3.2.0
  • 3.1.0
  • 3.0.0
  • 2.3.1
34 results

puppet-freeradius

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

    Outils employés

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

    • Apigility pour la fourniture du ws ;
    • Doctrine pour la gestion de la partie BDD (notamment des schémas des tables).

    Installation

    Cf. INSTALL.md.

    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: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

    Versions

    L'API existe en plusieurs versions, veillez à spécifier la version correcte dans l'URL. Exemple pour la version 1 : https://localhost:8443/v1/variable. Exemple pour la version 2 : https://localhost:8443/v2/variable.

    Interrogation avec curl

    Exemple :

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

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

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

    Remarques complémentaires

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

    Services acceptant un paramètre

    Aucun service n'accepte de paramètre, 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/v1/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/v1/doctorant?these_id=13111