Voici un lien vers des API publiques pour tout et n’importe quoi :
https://data.culture.gouv.fr/explore/?disjunctive.theme&disjunctive.keyword&sort=explore.popularity_score
Exemple pour accéder à l’API des festivals en france :
https://data.culture.gouv.fr/explore/dataset/panorama-des-festivals/api/
Il y a aussi des APIs pour les coktails !
https://www.thecocktaildb.com/api.php
Vous pouvez effectuer des recherches par catégorie, ingrédient, alcool, nom, etc… pour ce projet, vous pouvez mettre en place plusieurs pages avec un menu pour votre site.
Voici le lien pour vous aider : https://rapidapi.com/thecocktaildb/api/the-cocktail-db
Et d’autres encore :
Sinon, vous avez l’appli météo… beaucoup plus simple ;)
Idem que pour Star Wars, une autre API publique (Suisse) : https://www.prevision-meteo.ch/services/json/colmar
Pour cela, on utilise le site Suisse qui propose une API facile à utiliser.
Vous pouvez utiliser différentes techniques :
Petit bout de code pour vous aider avec fetch
let choixVille = "Colmar" const url = "https://www.prevision-meteo.ch/services/json/"; ... fetch(url + choixVille) .then( response => { // on précise que l'on souhaite une réponse de type JSON return response.json(); }) .then( reponseJson => { // block de traitement si tout va bien // ici on appelle notre résultat (la réponse obtenue) "reponseJson" // vous pouvez la nommer comme vous voulez : donnees ou data ou reponses ou json... // on fait quoi des données récupérées ? // ici pour l'exemple, on récupère 2 données et on met à jour la partie HTML, balise déjà créées : ville.innerText = reponseJson.city_info.name; leverSoleil.innerText = `Heure du Lever : ${reponseJson.city_info.sunrise}`; } )
Pour le moment on ne traite pas les réponses s’il y a une erreur (error), voire même ajouter un block (finally) qui s’exécutera toujours quelque soit la réponse. Nous verrons cela plus tard… sinon pour les plus pressé.e.s :
.catch(error = > { // je fais quoi si il y a une erreur de réponse // j'affiche un message dans ma page html, dans ma console pendant les tests }) .finally( () => { // je fais quoi quelque soit le retour de ma requête // généralement, remise à zéro de certaines données, // on peut cacher des balises html ou autre... })
Si vous avez des idées, vous pouvez ajouter d’autres informations ou réaliser un affichage différent, voire même utiliser une autre API…
Tout simplement pour pouvoir tester votre code et votre appli JS…
Projet à rendre mardi 7 juin avant minuit ;) pour valider la partie dynamique en JS.
Prévoir groupes de 2 et un groupe de 3… à définir.