Skip to content

ign-gpao/api

Repository files navigation

API

Coverage Status

IGN GPAO API est une brique logicielle de la GPAO développée en Node.js qui interagit avec les base de données et le reste des briques de la GPAO.

Déploiement et exécution via Docker

Pour faciliter son déploiement, une image api-gpao est déjà construite et accessible depuis DockerHub via la commande :

docker pull gpao/api-gpao

et peut être lancée avec :

docker run -ti --rm -p 8080:8080 -e GPAO_API_URL=`api_url_hostname` gpao/api-gpao

L'installation et l’exécution d'une GPAO complète (database, api, monitor, etc...) via Docker est décrite ici.

Déploiement et exécution local

Prérequis

  1. Installer nodejs et npm en suivant les procédures officielles propres à votre OS.
  2. L'api nécessite d'avoir un serveur postgres installé avec le modèle de données pour fonctionner, vous trouverez plus d'informations sur ce module ici.

Installation

  1. Cloner le dépôt ign-gpao/api ou récupérer les sources depuis la page des releases.
  2. Exécuter la commande npm install depuis le répertoire des sources afin de récupérer les dépendances du projet.

Exécution

  1. Dans le répertoire de l'api, lancer le script : start.sh qui contient la commande de lancement et les paramètres de connexion au serveur postgres (ceux-ci sont à adapter en fonction de l'installation de votre serveur postgres).

Une fois lancé vous pouvez tester le bon fonctionnement depuis la documentation swagger de l'API à l'adresse : http://localhost:8080/api/doc

Variables d'environnement

La configuration de variables d'environnement propres à l'API est nécessaire pour son bon fonctionnement. Elles sont définies par défaut ou dans le script start.sh dans le cas d'un déploiement local mais sont à adapter en fonction de votre installation. En voici l'inventaire :

Variable Obligatoire Valeur par défaut Commentaire
GPAO_API_URL Non localhost Nom de la machine qui héberge l'API
GPAO_API_PROTOCOL Non http Protocole de l'API
GPAO_API_PORT Non 8080 Port de l'API
PGHOST Oui Nom de la machine qui héberge la base de données
PGPORT Oui Port pour la base de données
PGUSER Oui User de connexion Postgresql
PGPASSWORD Oui Password de connexion Postgresql
PGDATABASE Oui Nom de la base GPAO

Pour les développeurs

Analyse du code

Le code doit être analysé avec ESLint avant d'être mergé sur la branche main. Voici la commande à exécuter avant de pousser votre code depuis le répertoire des sources : npm run lint

Exécution des tests unitaires

Pour lancer les tests unitaires de l'api :

  1. Tuer l'api en cours si nécessaire
  2. Dans un terminal exporter les variables suivantes :
export PGHOST=host
export PGPORT=port
export PGUSER=user
export PGPASSWORD=password
export PGDATABASE=gpao
  1. Lancer la commande npm run test-coveralls

Licence

Ce projet est sous licence CECILL-B (voir LICENSE.md).

IGN