OpenDataAPI/README.md
2024-02-08 12:28:51 +01:00

2.8 KiB

Project Open Data

Création d'une API unifié pour accéder à l'ensemble des données dont P4Pillon a besoin.

Le principe du projet est de pouvoir intérroger les données de l'open data depuis un réseau local et ainsi s'affranchir des pannes d'internet. Les données pourront être mise à jour régulièrement pour permettre d'avoir les dernières mise à jour.

Données

Voici les données dont nous rappatrirons.

FINESS

Informations sur les établissements sanitaires, sociaux, médico-sociaux, et de formation aux professions de ces secteurs.

Liens :

INPI

L'Institut national de la propriété industrielle, abrégé par le sigle INPI, est un établissement public à caractère administratif, placé sous la tutelle du ministère français de l'Économie, de l'Industrie et du Numérique.

Il y a 2 posibilités pour récupérer les données de l'ensemble des entreprises française :

Composants logiciels du projet

## Script

Un script permet d'initialiser le projet en téléchargeant les dépendences, les données de l'Open Data ainsi que de transformer ses données en fichiers CSV.

Il faut avoir Docker d'installé et executer cette commande :

bash build.sh

Docker Compose

Nous utilisons Docker Compose pour la mise en place des différents services.

Le projet propose 3 fichiers permettant une execution local ou sur un serveur ayant un serveur Traefik de configuré.

La configuration se fait à l'aide d'un fichier .env, vous devez modifier les valeurs du fichier .env.template.

Voici quelques commandes possibles :

docker compose up -d      # Création des conteneurs
docker compose down -v    # Suppresion des conteneurs ainsi que des données

PostgreSQL

La fonction COPY est utilisé dans les fichiers SQL du dossier ./initdb permettant d'importer les données d'un fichier CSV dans une base de données.

PostgREST

Pour la configuration : https://postgrest.org/en/latest/configuration.html#environment-variables Pour requêter des données : https://postgrest.org/en/stable/references/api/tables_views.html#horizontal-filtering-rows