Titre : Introduction à Flask : créer une API REST simple


Introduction

Créer une API RESTful avec Python est devenu simple grâce à Flask, un micro-framework léger mais puissant. Que ce soit pour une application mobile, un frontend JavaScript ou un service de données, Flask vous permet de développer rapidement des endpoints pour traiter des requêtes HTTP comme GET, POST, PUT ou DELETE.

Dans cet article, nous allons découvrir comment créer une API REST simple avec Flask, en partant de zéro. Vous apprendrez à configurer Flask, définir des routes, traiter des requêtes, et retourner des réponses JSON. L’objectif est de vous donner les bases pour créer une API rapide, claire, et extensible.


1. Installation de Flask

Pour commencer, installez Flask avec pip :

pip install flask


2. Créer une API REST minimale

Voici un exemple de base :

from flask import Flask

app = Flask(__name__)

@app.route('/')
def accueil():
    return "Bienvenue sur mon API !"

if __name__ == '__main__':
    app.run(debug=True)

  • @app.route() définit une route.
  • debug=True permet d’actualiser automatiquement lors du développement.

3. Créer une API qui retourne du JSON

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api/salut')
def salut():
    return jsonify(message="Bonjour, API REST !")

if __name__ == '__main__':
    app.run()


4. Ajouter des routes GET, POST, PUT, DELETE

Créer un “mini serveur” qui gère une liste d’utilisateurs

from flask import Flask, jsonify, request

app = Flask(__name__)

utilisateurs = [
    {"id": 1, "nom": "Alice"},
    {"id": 2, "nom": "Bob"}
]

# Récupérer tous les utilisateurs
@app.route('/api/utilisateurs', methods=['GET'])
def get_utilisateurs():
    return jsonify(utilisateurs)

# Récupérer un utilisateur par ID
@app.route('/api/utilisateurs/<int:id>', methods=['GET'])
def get_utilisateur(id):
    user = next((u for u in utilisateurs if u["id"] == id), None)
    return jsonify(user) if user else ("Non trouvé", 404)

# Ajouter un nouvel utilisateur
@app.route('/api/utilisateurs', methods=['POST'])
def ajouter_utilisateur():
    data = request.json
    nouvel_id = max(u["id"] for u in utilisateurs) + 1
    nouveau = {"id": nouvel_id, "nom": data["nom"]}
    utilisateurs.append(nouveau)
    return jsonify(nouveau), 201

# Modifier un utilisateur existant
@app.route('/api/utilisateurs/<int:id>', methods=['PUT'])
def modifier_utilisateur(id):
    data = request.json
    for u in utilisateurs:
        if u["id"] == id:
            u["nom"] = data["nom"]
            return jsonify(u)
    return ("Non trouvé", 404)

# Supprimer un utilisateur
@app.route('/api/utilisateurs/<int:id>', methods=['DELETE'])
def supprimer_utilisateur(id):
    global utilisateurs
    utilisateurs = [u for u in utilisateurs if u["id"] != id]
    return '', 204

if __name__ == '__main__':
    app.run(debug=True)

5. Tester l’API avec curl ou Postman

GET

curl http://localhost:5000/api/utilisateurs

POST

curl -X POST -H "Content-Type: application/json" -d '{"nom":"Charlie"}' http://localhost:5000/api/utilisateurs


6. Bonus : structurer le code dans un vrai projet

À mesure que votre API grandit, il est recommandé de structurer votre code en :

  • app.py (point d’entrée)
  • routes/ (fichiers de routes)
  • models/ (données et logique métier)
  • config.py

Conclusion

Flask est une excellente porte d’entrée pour créer des APIs REST en Python. Grâce à sa syntaxe claire et sa grande flexibilité, vous pouvez rapidement mettre en place des endpoints pour répondre à tous types de besoins : prototypage, test, backend d’application mobile, etc. Avec cette base, vous êtes maintenant prêt à construire une API complète et évolutive.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *