Création d’API Rest
avec FastAPI &
MySQL
06 Septembre 2025
Introduction
Qu’est-ce qu’une API et quels sont ses objectifs et
avantages ?
Objectifs : Avantages
● Créer des applications tierces qui ● Simplification de l'intégration entre
peuvent utiliser les services d'une applications
application existante ● Augmentation de la flexibilité
● Simplifier la communication entre ● Réduction des coûts de
différentes applications développement
● Accroître l'interopérabilité des ● Accélération du développement
applications ● Amélioration de l'expérience
utilisateur
Qu’est ce qu’une API REST ?
Principes du style architectural REST : Avantages :
● Ressources identifiées par des URIs ● Facilité d'utilisation
● Actions effectuées en utilisant des ● Flexibilité
méthodes HTTP ● Scalabilité
● Messages échangés représentés ● Interopérabilité
sous forme de représentations
Présentation des outils à
utiliser
Présentation de FastAPI, SQLAlchemy & MySQL
● https://fastapi.tiangolo.com/
● https://fastapi.tiangolo.com/t
utorial/sql-databases
● https://www.sqlalchemy.org/
Créer une API FastAPI
Etapes de création
Création d’une API Hello World
● Installer FastAPI
○ pip install fastapi
● Créer un nouveau fichier Python nommé app.py
● Importer Flask et créer une instance de l'application Flask
○ from fastapi import FastAPI
○ app = FastAPI()
● Ajouter une route à l'application vers la méthode à appeler
○ @app.get('/')
● Lancer l'application en exécutant la commande ci-dessous dans le dossier
contenant le fichier app.py
○ fastapi dev app.py
● Ouvrir le navigateur et allez à l'adresse http://localhost:8000/ pour voir le message
"Hello, World!" affiché.
● Consulter la documentation à l’adresse http://localhost:8000/docs
Création d’une API Hello World
from fastapi import FastAPI
app = FastAPI()
@app.get ("/")
def hello():
return {"message" : "Hello World !" }
Intégration et
configuration de la base de
données
Architecture du système - Architecture en
couches
Diviser l'application en couches logiques distinctes, chacune étant responsable d'un aspect
spécifique de l'application
● La couche de présentation ou d'interface utilisateur (Controller)
● La couche métier ou de traitement (Service)
● La couche de persistance des données (Model)
Configuration de la base de données
● Installer SQLAlchemy
○ pip install sqlalchemy
● Importer les modules SQLAlchemy dans votre application :
○ from sqlalchemy import create_engine
○ from sqlalchemy.ext.declarative import declarative_base
○ from sqlalchemy.orm import sessionmaker
● Définir l’URL de connexion à la base de données (MySQL dans notre cas) :
○ SQLALCHEMY_DATABASE_URI =f'mysql+pymysql://{db_user}:{db_pwd}@{db_host}/{db_name}'
● Configurer la base de données :
○ engine = create_engine(SQLALCHEMY_DATABASE_URL)
○ SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
○ Base = declarative_base()
● Créer des modèles de données en utilisant la classe db.Model de SQLAlchemy :
Création des models
● Book
○ id
○ title
○ summary
○ note
○ price
○ publication_date
○ category
● Author
○ id
○ firstname
○ lastname
Création des services
Book
Author
Création du controller
Book
Author
Fin