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

71 lines
2.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 :
- [Site web](https://finess.esante.gouv.fr/)
- [Page web sur l'Open Data du gouvernement](https://www.data.gouv.fr/fr/datasets/finess-extraction-du-fichier-des-etablissements/)
### 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 :
- depuis l'API
- depuis [des fichiers](https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret/)
## Composants logiciels du projet
- Base de données : [PostgreSQL](https://www.postgresql.org/)
- API : [PostgREST](https://postgrest.org/) ([Documentation](https://postgrest.org/en/stable/explanations/install.html#docker))
- UI : [Swagger UI](https://swagger.io/tools/swagger-ui/)
- Virtualisation : [Docker](https://docs.docker.com/)
- Orchestrateur : [Docker Compose](https://docs.docker.com/compose/)
## 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
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 :
```bash
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