Qu'est-ce qu'une API REST ? Le pont entre les applications
Imagine que tu veux afficher la météo dans ton application Python. Plutôt que de créer ta propre station météo, tu peux demander les données à un service spécialisé, comme Météo-France. C'est exactement le rôle d'une API (Application Programming Interface) : une interface qui permet à deux logiciels de communiquer entre eux. REST (Representational State Transfer) est un style d'architecture, un ensemble de règles qui rend cette communication sur le web simple, standardisée et efficace. Une API RESTful utilise les principes du web que tu connais déjà (URL, requêtes HTTP) pour échanger des données, le plus souvent au format JSON.
Les principes fondamentaux d'une API RESTful
Pour être qualifiée de "RESTful", une API doit respecter quelques contraintes clés. Ne t'inquiète pas, elles sont logiques !
1. Une architecture client-serveur sans état (stateless)
Chaque requête que ton client (ton script Python) envoie au serveur doit contenir toutes les informations nécessaires pour être comprise. Le serveur ne garde pas en mémoire l'état de la conversation précédente. C'est comme envoyer une lettre : tu dois remettre l'adresse à chaque fois.
2. Une interface uniforme : les verbes HTTP
C'est le cœur de REST. On utilise les méthodes HTTP standard pour effectuer des actions sur des ressources, identifiées par des URL (ou endpoints).
- GET : Récupérer des données (lire). Ex:
GET /api/livres - POST : Créer une nouvelle ressource. Ex:
POST /api/livres(avec les données du livre) - PUT/PATCH : Mettre à jour une ressource existante.
- DELETE : Supprimer une ressource. Ex:
DELETE /api/livres/42
3. Les ressources et leurs représentations (JSON)
Une ressource peut être n'importe quoi : un utilisateur, un article, une ville. L'API ne t'envoie pas l'objet lui-même, mais une représentation, le plus souvent en JSON, un format léger et facile à lire pour les machines et les humains.
Faire ton premier appel API en Python avec requests
Passons à la pratique ! En NSI, on utilise souvent la librairie requests. Commence par l'installer : pip install requests.
Prenons l'exemple de JSONPlaceholder, une API gratuite pour s'entraîner. On va récupérer une liste de "posts" (articles).
Astuce NSI : Toujours consulter la documentation de l'API pour connaître les URL (endpoints) disponibles et les paramètres acceptés.
import requests
# 1. Faire une requête GET
response = requests.get('https://jsonplaceholder.typicode.com/posts')
# 2. Vérifier si la requête a réussi (code 200)
if response.status_code == 200:
# 3. Convertir la réponse JSON en dictionnaire Python
posts = response.json()
# 4. Parcourir et afficher les données
for post in posts[:3]: # On affiche seulement les 3 premiers
print(f"Titre: {post['title']}")
print(f"Corps: {post['body'][:50]}...") # Aperçu du texte
print("---")
else:
print(f"Erreur ! Code : {response.status_code}")Tu viens d'interagir avec une API REST ! La variable posts est maintenant une liste de dictionnaires Python que tu peux manipuler.
Aller plus loin : paramètres, authentification et projets NSI
Envoyer des paramètres dans une requête
Pour filtrer les résultats, tu peux ajouter des paramètres. Par exemple, pour récupérer seulement les posts de l'utilisateur n°1 :
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)Comprendre l'authentification (clés API)
Les API publiques comme celle de la NASA ou d'OpenWeather nécessitent une clé API, une sorte de mot de passe que tu dois fournir, souvent dans les en-têtes (headers) de la requête.
headers = {'Authorization': 'Bearer MA_CLE_SECRETE'}
response = requests.get('https://api.monservice.com/data', headers=headers)Idées de projets pour ton portfolio NSI
- Météo en Terminal : Utilise l'API OpenWeather pour afficher la météo d'une ville saisie par l'utilisateur.
- Générateur de citations : Connecte-toi à une API de citations aléatoires et affiche-en une par jour.
- Tableau de bord de crypto-monnaies : Agrège les prix depuis CoinGecko API pour suivre tes actifs favoris.
Conclusion : les API, une compétence indispensable
Maîtriser les concepts des API REST est une compétence fondamentale, non seulement pour l'épreuve de NSI, mais pour ton avenir en informatique. Cela te permet de t'appuyer sur des services existants pour créer des applications bien plus riches et puissantes sans tout réinventer. Alors, choisis une API publique qui t'intéresse, plonge dans sa documentation et commence à coder !
