Exercice : L'API du stagiaire de 2009 Objectif En rangeant la réserve du bar, le patron d'API-ritif a retrouvé une clé USB étiquetée « API v0 — NE PAS TOUCHER — Kévin, stage 2009 » . Elle contient la documentation de l'ancienne API du bar, toujours utilisée par la vieille caisse enregistreuse. Votre mission, en groupe : critiquer cette API et proposer une version propre . La documentation retrouvée === API DU BAR - by Kevin - 2009 === (marche bien normalement) GET /getCocktails.php -> liste des cocktails (tous, d'un coup) GET /getCocktails.php?alcool=0 -> cocktails sans alcool GET /Cocktail?id=3 -> un cocktail GET /cocktails/3 -> un cocktail aussi (nouvelle version) GET /api/cocktail/delete?id=3 -> supprime un cocktail POST /api/cocktail/updatePriceV2_final -> change le prix (envoyer id et prix) POST /orders/list -> liste des commandes POST /addOrderNew -> passer commande GET /orders?user_id=12 -> commandes d'un client GET /api/getUserPassword?user=bob -> pour le mot de passe oublié Quelques réponses relevées : GET /Cocktail?id=999 HTTP/1.1 200 OK {"error": true, "msg": "pas trouvé"} POST /addOrderNew HTTP/1.1 200 OK {"error": false, "data": {"Id": 42, "prix": "9,50 €", "Date": "12/03/09"}} GET /getCocktails.php?alcool=peut-etre HTTP/1.1 200 OK {"error": true, "msg": "SQLSTATE[42000]: Syntax error near 'peut-etre' in /var/www/bar/getCocktails.php line 12"} Consignes 1 - Critiquer Pour chaque route et chaque réponse, listez tous les problèmes que vous trouvez. Pensez à tout ce qui a été vu jusqu'ici : nommage des routes ; choix des méthodes HTTP ; codes de statut ; format des données et des erreurs ; pagination ; sécurité. Il y a plus de problèmes que de lignes. Certains sont gênants, d'autres sont graves. 2 - Corriger Proposez la nouvelle version de l'API sous forme de tableau : méthode, route, rôle, codes de statut possibles. Proposez aussi le format corrigé des réponses ci-dessus. Si une route ne devrait tout simplement pas exister, dites-le et expliquez pourquoi. 3 - Migrer La vieille caisse enregistreuse ne peut pas être mise à jour avant six mois. Comment faire cohabiter l'ancienne et la nouvelle API ? Résultat attendu Une restitution orale par groupe : les 3 problèmes que vous jugez les plus graves, et pourquoi ; votre tableau des nouvelles routes ; votre stratégie de migration.