Principes fondamentaux des API REST pour la collecte de données
HTTP GET/POST, en-têtes, authentification (clé d’API, Bearer) et analyse du JSON avec requests.
Principes fondamentaux des API REST pour la collecte de données est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Pourquoi les API sont importantes pour l'IA
Les modèles sont seulement aussi bons que leurs données. Les API web vous permettent de collecter à la demande des données fraîches et structurées — météo, prix, publications sur les réseaux sociaux, jeux de données publics — au lieu de dépendre d'un seul fichier statique.
Ce cours utilise Python et la bibliothèque populaire requests pour récupérer et stocker ces données.
Qu'est-ce qu'une API REST ?
Une API REST expose des ressources via HTTP. Vous envoyez une requête à une URL (point de terminaison) et recevez des données, généralement au format JSON.
Les principales méthodes HTTP :
GET— lire des donnéesPOST— créer des donnéesPUT/PATCH— mettre à jourDELETE— supprimer
Pour collecter des données, vous utilisez principalement GET.
Une première requête GET
requests.get(url) envoie une requête GET et renvoie un objet réponse. La réponse contient le statut, les en-têtes et le contenu.
import requests
resp = requests.get("https://api.example.com/users")
print(resp.status_code) # 200
print(resp.text[:200]) # raw body as a stringVérifier response.status_code
Le code d'état vous indique si la requête a abouti :
200OK301/302redirection400requête incorrecte401/403problème d'authentification404introuvable429soumis à une limitation de débit500erreur du serveur
resp = requests.get(url)
if resp.status_code == 200:
print("Success")
else:
print("Failed:", resp.status_code)Analyser du JSON avec response.json()
La plupart des API renvoient du JSON. response.json() analyse automatiquement le contenu pour le transformer en dictionnaires et listes Python.
Ne cherchez pas à analyser le JSON manuellement : .json() s'en charge et déclenche une erreur claire si le contenu n'est pas un JSON valide.
resp = requests.get("https://api.example.com/users/1")
data = resp.json()
print(data["name"])
print(data["email"])Envoyer des paramètres de requête
Filtrez et configurez les requêtes à l'aide de paramètres de requête. Transmettez un dictionnaire à params et requests construit l'URL pour vous en gérant l'encodage.
L'exemple devient ?city=London&units=metric dans l'URL.
params = {"city": "London", "units": "metric"}
resp = requests.get("https://api.example.com/weather", params=params)
print(resp.url)
print(resp.json())Envoyer des en-têtes
Les en-têtes transportent des métadonnées telles que le type de contenu, un agent utilisateur ou une clé/un jeton d'API. Transmettez-les sous forme de dictionnaire à headers.
De nombreuses API exigent un en-tête Authorization pour autoriser l'accès.
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"User-Agent": "my-data-collector/1.0",
}
resp = requests.get("https://api.example.com/data", headers=headers)
print(resp.json())raise_for_status() pour un code robuste
Au lieu de vérifier les codes manuellement, appelez resp.raise_for_status(). Cette fonction déclenche une HTTPError pour toute réponse 4xx ou 5xx, afin que les échecs soient signalés immédiatement.
Placez-la dans un bloc try/except pour gérer les erreurs avec élégance.
import requests
try:
resp = requests.get(url, timeout=10)
resp.raise_for_status()
data = resp.json()
except requests.HTTPError as e:
print("HTTP error:", e)
except requests.RequestException as e:
print("Network error:", e)Toujours définir un délai d'attente
Sans timeout, un serveur bloqué peut suspendre votre script indéfiniment. Transmettez-en toujours un (en secondes).
Dans les boucles de collecte de données qui interrogent des milliers de points de terminaison, l'absence de délai d'attente est une cause fréquente de blocage des tâches.
resp = requests.get(url, timeout=10) # give up after 10 secondsRéutiliser les connexions avec Session
Un requests.Session réutilise la connexion TCP sous-jacente entre les requêtes et vous permet de définir les en-têtes une seule fois. Pour de nombreux appels vers le même hôte, cette méthode est bien plus rapide.
import requests
session = requests.Session()
session.headers.update({"Authorization": "Bearer YOUR_TOKEN"})
for uid in [1, 2, 3]:
resp = session.get(f"https://api.example.com/users/{uid}")
print(resp.json()["name"])
session.close()Un utilitaire propre pour récupérer les données
Encapsulez ce schéma dans une fonction réutilisable : configurez une session, appliquez un délai d'attente, déclenchez une erreur en cas d'échec et renvoyez le JSON analysé.
Vous vous appuierez sur cet utilitaire dans les prochaines leçons pour la pagination et le stockage.
def fetch_json(session, url, params=None):
resp = session.get(url, params=params, timeout=10)
resp.raise_for_status()
return resp.json()Vérification rapide : requêtes robustes
Vous voulez que votre code déclenche automatiquement une exception lors d'une réponse 404 ou 500.
Récapitulatif : principes fondamentaux des API REST
Vous pouvez maintenant collecter des données via HTTP :
requests.get(url, params=..., headers=...)pour effectuer des requêtesresponse.status_codeetraise_for_status()pour détecter les échecsresponse.json()pour analyser le contenutimeoutpour éviter les blocagesrequests.Sessionpour réutiliser les connexions et les en-têtes
Ensuite : collecter des jeux de données répartis sur de nombreuses pages.
Questions Fréquemment Posées
La leçon « Principes fondamentaux des API REST pour la collecte de données » est-elle gratuite ?
Oui — le texte complet de « Principes fondamentaux des API REST pour la collecte de données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Principes fondamentaux des API REST pour la collecte de données » ?
HTTP GET/POST, en-têtes, authentification (clé d’API, Bearer) et analyse du JSON avec requests. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Principes fondamentaux des API REST pour la collecte de données » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Principes fondamentaux des API REST pour la collecte de données
- Paginer et collecter de grands jeux de données
- Stocker efficacement les données collectées
- Utiliser les API de données publiques