API server core for energy performance analysis (DPE) in France.
880
Git module API server pour DPE-Energy-Performance-Analysis.
Ce projet expose une API REST permettant de consulter et d’analyser les données énergétiques issues des sources Enedis, ADEME et BAN.
L’API est codée avec le framework FastAPI et s’intègre dans une architecture de microservices comprenant :
L’objectif principal : exposer uniquement des données agrégées et anonymisées, tout en garantissant la sécurité, la gouvernance et la performance des traitements.
L’API agit comme Data Access Layer et interface unique avec la base de données.
Les choix de conception assurent :
📌 Les données exposées sont des moyennes de consommation énergétique (kWh/m²) au niveau des logements, rues ou villes, sans identifiants directs et les caractéristiques des logements.
L’API repose sur des variables d’environnement définies dans un fichier secrets.json.
Exemple de configuration :
# Environnement LOCAL ou NOLOCAL
# si NOLOCAL l'API fonctionnera avec les microservices
# si LOCAL les fichiers seront stockés si possible sur la machine hôte
ENV=LOCAL
# API
API_HOST=0.0.0.0
API_PORT=8000
# Redis
REDIS_HOST=redis
REDIS_PORT=6379
# SMTP (pour envoi OTP par mail)
SMTP_SERVER=smtp.example.com
SMTP_PORT=465 # garder ce port car c'est du ssl qui est implémenté
[email protected]
SMTP_PASSWORD=secret
[email protected]
# PostgreSQL
POSTGRES_HOST=db
POSTGRES_PORT=5432
POSTGRES_DB_NAME=dpedb_v2
POSTGRES_ADMIN_USERNAME=postgres
POSTGRES_ADMIN_PASSWORD=password
POSTGRES_READER_USERNAME=reader
POSTGRES_READER_PASSWORD=password
POSTGRES_WRITER_USERNAME=writer
POSTGRES_WRITER_PASSWORD=password
# S3 Storage. Obligatoire ssi l'endpoint de run ETl est utilisé
S3_ACCESS_KEY=******
S3_SECRET_KEY=******
S3_BUCKET_NAME=dpe-storage-v1
S3_REGION=eu-west
S3_ENDPOINT_URL=http://minio:9000
# Prefect monitoring. Obligatoire ssi l'endpoint de run ETl est utilisé
PREFECT_API_URL=http://prefect:4200/api
# Chemins pour sauvegarder les runs de l'ETL. Obligatoire ssi l'endpoint de run est utilisé
PATH_LOG_DIR=etl/logs/
PATH_ARCHIVE_DIR=etl/data/archive/
PATH_DATA_BRONZE=etl/data/1_bronze/
PATH_DATA_SILVER=etl/data/2_silver/
PATH_DATA_GOLD=etl/data/3_gold/
PATH_FILE_INPUT_ENEDIS_CSV=etl/data/1_bronze/conso_enedis.csv
SCHEMA_ETL_INPUT_FILEPATH=config/schema_input_data.json
SCHEMA_SILVER_DATA_FILEPATH=etl/ressources/schemas/schema_silver_data.json
SCHEMA_GOLDEN_DATA_FILEPATH=config/schema_golden_data.json
git clone --recursive https://github.com/fereol023/DPE-Energy-Performance-Analysis-API.git
docker build -t enedis-ademe-api .
docker run -p 8000:8000 --env-file .env enedis-ademe-api
docker-compose up -d
Voir exemple de docker compose file ici.
python3 main.py --local
Une fois démarrée, l’API est accessible sur : 👉 http://host:8000
Documentation interactive : 👉 http://host:8000/docs (Swagger UI) 👉 http://host:8000/redoc
Ce projet est distribué sous licence GNU GPL3.
Content type
Image
Digest
sha256:c3a5254ba…
Size
632.2 MB
Last updated
about 1 year ago
docker pull fereol023/dpe-energy-performance-analysis-api:v0.21.0.1757495409