On dispose d'une API qui fournit la liste des villes des Côtes d'armor.

Celle-ci est accessible à l'adresse suivante :

https://geo.api.gouv.fr/communes?codeDepartement=22

 

A partir de celle-ci, et en utilisant Vue js, on souhaite obtenir l'affichage ci-dessous :

image

 

L'affichage des villes est affiné en fonction de la saisie dans la zone input.

 

On fournit le fichier html de départ :

<html>

<head>

<script>

</script>

<style type="text/css">

input,select

{

                font-family:Arial;

                font-size:11px;

                background-color:lightgray;

                width:220;

}

</style>

 

</head>

<body>

<div id='app'>

                <form name='f1'>

                Liste des communes des Côtes d'armor : <br/>

                <input type='text' id='saisieVille' />

                <br/>

                <select id='afficheVille' size='10' >

                                               <option></option>

                </select>

                </form>

                <br>

                <span id='details'>

                               <h2>Détails sur :</h2>

                               <ul>

                                              

                               </ul>

                </span>

</div>

<!-- pour utiliser vue js -->

<script src= "https://unpkg.com/vue@3/dist/vue.global.js"></script>

<!-- pour utiliser axios (facilite les requetes http) -->

<script src="https://unpkg.com/axios/dist/axios.min.js" ></script>

<!-- notre application vue js -->

<script src="./app.js"></script>

</body>

</html>

 

Et le fichier app.js de départ :

const API = "https://geo.api.gouv.fr/communes?codeDepartement=22";

 

const app = Vue.createApp({

    data() {

        return {

                              

        }

    },

    methods : {

        async fetchAPI() {

            await axios.get(API)

            .then((response)=>{

                                                              

            })

            .catch((error)=>{

                console.log(error)

            })

        }

    }

});

const vm = app.mount('#app');  // mount spécifie que l'application Vue s'affichera dans la div avec id="app"

 

 

T.A.F.

Réaliser cette application