Facile

Introduction — Séance 1

Ce cours, R5C4 — Programmation au format web des données décisionnelles, porte sur la conception d'APIs orientées données. Cette première séance couvre HTTP, la pagination, le filtrage, l'agrégation et l'export CSV.

Contexte du cours

Ce module s'adresse aux étudiants de 3e année BUT Informatique, parcours données et analytique. L'objectif : savoir exposer de la donnée via des APIs web pour alimenter des tableaux de bord, des outils de BI ou des applications d'analyse.

Données décisionnelles ?

Les données décisionnelles (ou data analytics) servent à prendre des décisions. Contrairement à une application CRUD classique qui gère des formulaires, ici l'enjeu est de servir des volumes importants de données, souvent agrégées et filtrées, dans des formats exploitables (JSON, CSV).

Les APIs construites dans ce module servent à :

  • Alimenter un dashboard en données (chiffre d'affaires par région, évolution mensuelle)
  • Permettre l'export de jeux de données filtrés vers Excel ou des outils BI
  • Fournir des indicateurs agrégés (totaux, moyennes, comptages) via des endpoints dédiés
  • Gérer la pagination de grands volumes de données (des milliers de lignes)

Objectifs de la séance

Objectifs

À la fin de cette séance, vous serez capable de :

  • Expliquer le fonctionnement du protocole HTTP et les principes REST
  • Concevoir les routes d'une API orientée données
  • Structurer une application Flask (Blueprint, Controller, Repository)
  • Implémenter la pagination et le filtrage sur un endpoint
  • Créer un endpoint d'agrégation (totaux, moyennes, regroupements)
  • Exporter des données en JSON et CSV depuis un même endpoint

Différence avec R5A5

R5C4 adopte une approche différente de R5A5 (Développement Avancé) :

AspectR5A5 (Génie logiciel)R5C4 (Données)
ArchitectureClean Architecture, Domain, Use CasesBlueprint + Controller + Repository
FocusPatterns logiciels, maintenabilitéPagination, filtrage, agrégation, export
DonnéesCRUD classiqueGrands volumes, analytics, BI
ComplexitéArchitecture en couchesArchitecture légère, requêtes SQL

Prérequis

  • Python : syntaxe de base (fonctions, classes, dictionnaires), vu en 2e année
  • Notions de backend : avoir déjà vu Flask ou un framework similaire
  • Bases du web : requête HTTP, code de statut, URL

Pas de panique

Si vos souvenirs de Flask sont flous, cette séance reprend les bases nécessaires. Les exemples sont commentés et progressifs.

Technologies utilisées

Les exemples utilisent Python avec Flask et SQLite :

  • Flask est léger et explicite — on voit ce qui se passe
  • SQLite ne nécessite aucune installation — un fichier suffit
  • Les concepts se transfèrent vers Django, FastAPI ou tout autre framework

Plan de la séance

PartieContenuDurée estimée
HTTP & RESTRappels sur le protocole HTTP et les principes REST15 min
Conception d'APINommage, URI, versioning, CRUD15 min
Architecture FlaskBlueprint, Controller, Repository20 min
Pagination & FiltrageOffset, limit, filtres multiples, tri25 min
AgrégationEndpoints de statistiques, GROUP BY, pandas20 min
Formats & ExportJSON, CSV, négociation de contenu10 min
ExercicesMise en pratique30 min
QuizValidation des acquis10 min

Approche pédagogique

Chaque concept est illustré par du code Flask fonctionnel, réutilisable dans les exercices et les séances suivantes.