Une API REST : ouvrir une URL pour recevoir des données
Imagine un guichet ouvert en permanence sur Internet. Tu lui poses une question en ouvrant une adresse web (une URL), et il te répond aussitôt avec des données bien rangées. Ce guichet, c'est une API REST (de l'anglais Application Programming Interface). La réponse arrive presque toujours au format JSON, exactement le format que tu as déjà rencontré dans le cours.
C'est précisément ce que fait la bibliothèque requests qu'on a utilisée en classe, et c'est le coeur du truc « une URL pour ton fichier » : au lieu de télécharger un fichier à la main, ton programme va le chercher tout seul.
Ici on interroge l'API météo ouverte Open-Meteo pour obtenir la température actuelle à Montréal. Aucune clé, aucun mot de passe : on ouvre l'URL, on lit la réponse.
Le même schéma sert pour le Projet 3 : l'archive des exoplanètes de la NASA expose une API. On remplace simplement l'URL, et reponse.json() nous rend une liste de planètes prête à analyser. Une API, c'est donc juste une URL qui parle JSON.
Au-delà du simple appel : GraphQL et les files de messages
Une API REST classique te renvoie souvent un gros bloc de données, même si tu n'en voulais qu'un petit morceau. Deux idées plus modernes répondent à ce besoin différemment.
Avec une API REST, c'est comme un menu fixe au restaurant : tu reçois l'assiette complète. Avec GraphQL, c'est un menu à la carte : tu écris dans ta requête la liste précise des champs souhaités (juste le nom et la masse d'une planète, par exemple), et le service te renvoie ça, ni plus ni moins. Résultat : moins de données inutiles qui voyagent, et une réponse taillée sur mesure.
Jusqu'ici on posait une question et on attendait une réponse. Mais que faire quand des milliers de capteurs (stations météo, sondes, objets connectés) envoient des mesures en même temps, sans arrêt ? On utilise une file de messages comme Apache Kafka. Imagine un tapis roulant géant : chaque capteur dépose ses messages dessus, et d'autres programmes les ramassent à leur rythme. Personne n'attend personne, et rien ne se perd même quand le débit explose.
L'ESB et la SOA : le chef d'orchestre des grandes organisations
Dans une banque, un hôpital ou un ministère, il y a des dizaines de logiciels différents : dossiers des patients, paie, rendez-vous, comptabilité... Tous doivent s'échanger des données. Si on relie chaque logiciel à tous les autres directement, on obtient vite un immense plat de spaghettis de connexions, impossible à entretenir.
La solution est un ESB (de l'anglais Enterprise Service Bus, le « bus de services d'entreprise ») : un point central par lequel tout transite. Chaque logiciel parle au bus, et le bus se charge de transmettre, traduire et router les messages. C'est le chef d'orchestre : les musiciens ne se parlent pas tous entre eux, ils suivent le chef. Cette façon d'organiser les logiciels en services qui se rendent mutuellement des données s'appelle la SOA (Service-Oriented Architecture, l'architecture orientée services).
| Technologie | À quoi ça sert |
|---|---|
| API REST | Ouvrir une URL pour obtenir des données en JSON. Simple et universel, c'est le module requests du cours. |
| GraphQL | Demander précisément les champs voulus, ni plus ni moins, dans une seule requête sur mesure. |
| File de messages (Kafka) | Recevoir un flot continu de messages venant de milliers de sources en même temps, sans rien perdre. |
| ESB | Faire transiter toutes les données d'une organisation par un point central, pour éviter le plat de spaghettis. |
Et pour la science ?
Ces services ne servent pas qu'aux banques. La recherche scientifique en vit : on récupère en direct des données d'observatoires astronomiques, de stations météo réparties sur la planète, ou même la position de la Station spatiale internationale (ISS), qui survole nos têtes en ce moment.
Quand tu as besoin de vraies données pour un projet, demande-toi : « existe-t-il une API pour ça ? ». Très souvent oui. Avec trois lignes de Python (import requests, requests.get(url), .json()), tu branches ton programme sur des mesures fraîches du monde entier.