Featured image of post  Créer ta première API avec Flask

Créer ta première API avec Flask

Hey ! 👋 Tu veux apprendre à créer des APIs avec Python et Flask ? Super choix pour débuter ! Ce guide est fait pour toi si tu débutes vraiment. On va tout voir ensemble, étape par étape, sans rien présupposer.

Une API (application programming interface ou « interface de programmation d’application ») est une interface logicielle qui permet de « connecter » un logiciel ou un service Ă  un autre logiciel ou service afin d’Ă©changer des donnĂ©es et des fonctionnalitĂ©s.

― CNIL, cnil.fr

Partie 1 : Les bases essentielles

1. Premier pas avec Flask

Installation de Python et Flask

Avant tout, il te faut Python sur ton ordinateur :

  1. Va sur python.org
  2. Télécharge la dernière version de Python 3
  3. Installe-le en cochant “Add Python to PATH”

Maintenant, ouvre ton terminal (Command Prompt sur Windows) et tape :

pip install flask

Ton premier “Hello, World!”

Crée un nouveau dossier pour ton projet et dedans crée un fichier app.py :

from flask import Flask

# Crée l'application
app = Flask(__name__)

# Crée ta première route
@app.route('/')
def hello():
    return "Hello, World!"

# Lance l'application
if __name__ == '__main__':
    app.run(debug=True)

Comment lancer ton serveur

Dans ton terminal, va dans le dossier de ton projet et tape :

python app.py

Tu devrais voir quelque chose comme :

 * Running on http://127.0.0.1:5000

Ouvre ton navigateur et va sur http://127.0.0.1:5000 - Tu vois “Hello, World!” ? Bravo, ta première API fonctionne !

Comprendre ce qui se passe

  • Flask(__name__) crĂ©e ton application
  • @app.route('/') dit Ă  Flask quelle URL Ă©couter
  • debug=True permet de voir les erreurs et recharge automatiquement quand tu changes le code

2. Les routes simples

C’est quoi une route ?

Une route, c’est le chemin dans ton URL. Par exemple :

@app.route('/bonjour')
def dire_bonjour():
    return "Bonjour tout le monde !"

@app.route('/aurevoir')
def dire_aurevoir():
    return "Au revoir !"

Maintenant tu peux aller sur :

  • http://127.0.0.1:5000/bonjour
  • http://127.0.0.1:5000/aurevoir

Créer différentes pages

# Plusieurs routes dans ton app.py
@app.route('/')
def accueil():
    return "Page d'accueil"

@app.route('/about')
def about():
    return "Ă€ propos de nous"

@app.route('/contact')
def contact():
    return "Contactez-nous"

3. Les méthodes HTTP

GET : récupérer des infos

@app.route('/utilisateurs', methods=['GET'])
def obtenir_utilisateurs():
    utilisateurs = ['Alice', 'Bob', 'Charlie']
    return str(utilisateurs)

POST : envoyer des infos

from flask import request

@app.route('/message', methods=['POST'])
def recevoir_message():
    message = request.form.get('message')
    return f"Message reçu : {message}"

Tester avec Postman

  1. Télécharge Postman
  2. Crée une nouvelle requête
  3. Choisis GET ou POST
  4. Entre ton URL
  5. Pour POST, va dans “Body” > “form-data” et ajoute tes donnĂ©es

4. Travailler avec les données

Les listes et dictionnaires

# Une liste simple de tâches
taches = []

@app.route('/taches', methods=['GET'])
def voir_taches():
    return str(taches)

@app.route('/taches', methods=['POST'])
def ajouter_tache():
    nouvelle_tache = request.form.get('tache')
    taches.append(nouvelle_tache)
    return f"Tâche ajoutée : {nouvelle_tache}"

5. Les paramètres d’URL

Routes dynamiques

@app.route('/utilisateur/<nom>')
def profil_utilisateur(nom):
    return f"Profil de {nom}"

# Avec des types
@app.route('/article/<int:id>')
def voir_article(id):
    return f"Article numéro {id}"

Partie 2 : Allons plus loin

6. Les formulaires

Recevoir des données

from flask import request

@app.route('/login', methods=['POST'])
def login():
    username = request.form.get('username')
    password = request.form.get('password')
    
    if username == "admin" and password == "secret":
        return "Connecté !"
    return "Erreur de connexion"

7. JSON et APIs

Envoyer et recevoir du JSON

from flask import jsonify, request

@app.route('/api/data', methods=['GET'])
def get_data():
    data = {
        'nom': 'Pierre',
        'age': 25,
        'ville': 'Paris'
    }
    return jsonify(data)

@app.route('/api/user', methods=['POST'])
def create_user():
    user_data = request.get_json()  # Pour recevoir du JSON
    return jsonify(user_data)  # Pour renvoyer du JSON

8. Organisation du code

Structure de base recommandée

mon_api/
    ├── app.py
    ├── routes/
    │   ├── __init__.py
    │   ├── users.py
    │   └── tasks.py
    └── data/
        └── users.py

9. Les erreurs courantes

GĂ©rer les erreurs

@app.errorhandler(404)
def page_not_found(e):
    return "Page non trouvée", 404

@app.errorhandler(500)
def internal_error(e):
    return "Erreur interne du serveur", 500

10. Premier projet complet : Todo List API

Code complet d’une Todo List

from flask import Flask, request, jsonify

app = Flask(__name__)

# Notre "base de données" simple
todos = []

# Voir toutes les tâches
@app.route('/todos', methods=['GET'])
def get_todos():
    return jsonify(todos)

# Ajouter une tâche
@app.route('/todos', methods=['POST'])
def add_todo():
    data = request.get_json()
    todo = {
        'id': len(todos) + 1,
        'task': data.get('task'),
        'done': False
    }
    todos.append(todo)
    return jsonify(todo)

# Marquer une tâche comme terminée
@app.route('/todos/<int:todo_id>', methods=['PUT'])
def update_todo(todo_id):
    for todo in todos:
        if todo['id'] == todo_id:
            todo['done'] = True
            return jsonify(todo)
    return "Tâche non trouvée", 404

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

Conclusion et prochaines Ă©tapes

Ce que tu as appris

  • CrĂ©er une API Flask basique
  • GĂ©rer diffĂ©rentes routes
  • Travailler avec GET et POST
  • Manipuler des donnĂ©es
  • CrĂ©er une petite application complète

Prochainement nous allons voir…

  1. Apprendre à utiliser une vraie base de données
  2. Ajouter de l’authentification
  3. Créer des APIs plus complexes
  4. Explorer le framework Flask plus en profondeur

Ressources pour continuer

  • Documentation officielle de Flask
  • Cours en ligne gratuits

N’oublie pas : la pratique est la clĂ© ! Essaie de crĂ©er tes propres projets et n’hĂ©site pas Ă  expĂ©rimenter.

Et vous, qu’est-ce qui vous retient de tester Flask ? Dites-moi tout dans les commentaires !

Bon code ! 🚀