Partie 6
Consommer et concevoir une API (exercices et TP)
Les exercices TMDB (Postman)
Six exercices pour découvrir un web service avec l'API TMDB dans Postman. Pré-requis : un compte TMDB et une clé d'API, placée dans les en-têtes des requêtes ou en variable d'environnement. Il faut aussi créer des collections Postman et les exporter dans le rendu, avec la documentation générée.
| Exercice | Objectif |
|---|---|
| 1.1 | GET : rechercher un film par titre (ex. « Inception »), lire la liste JSON |
| 1.2 | GET avec filtres multiples (au moins 3 paramètres : année de sortie, note TMDB…) |
| 2 | détails d'un film à partir de son ID |
| 3 | rechercher un acteur par nom (ex. « Leonardo DiCaprio ») et trouver son ID TMDB |
| 4 | filmographie d'un acteur à partir de son ID |
| 5 | les 30 films les plus populaires actuels |
| 6 | comparer les notes des films d'un acteur : lister les IDs, requêter les détails, trouver les trois meilleurs |
Schéma général : chercher (liste + IDs) puis détailler (une requête par ID). Une requête GET avec paramètres ressemble à ceci :
GET /search/movie?query=Inception&api_key={votre_cle_api} Host: api.exemple.org HTTP/1.1 200 OK { "results": [ { "id": 1, "title": "..." } ] }
(adresse et forme ajoutées pour l'exemple, l'énoncé ne donne que « {votre_cle_api} »)
Vérifie que tu as compris
Le TP « assistant de voyage »
Une startup veut un assistant de planification. Les voyageurs créent un compte, se connectent, saisissent une ville une fois authentifiés, et reçoivent dans une seule réponse JSON la météo actuelle (température et conditions) et trois idées d'activités.
| Route | Rôle |
|---|---|
| POST /users | inscription : vérifier que l'email n'existe pas, hacher le mot de passe, enregistrer, retourner l'identifiant et l'email |
| POST /login | vérifier email et mot de passe, générer un token JWT (contenu minimal) |
| POST /plan | recevoir la ville, appeler l'API météo, obtenir les activités (API ou 3 suggestions prédéfinies), retourner ville + météo + activités |
Contraintes : Python + FastAPI (Swagger automatique) ou Node.js ; base MySQL pour les comptes ; mots de passe hachés et JWT simples ; au minimum l'API météo (OpenWeatherMap) ; secrets (clés d'API, paramètres MySQL) dans un fichier .env ; Git. En cas d'erreur d'API externe : un message d'erreur clair et stable (code et explication).
Vérifie que tu as compris