
El día de hoy les traigo un tutorial de como consumir un APi REst de un weather channel y transformarlo un modelo de app utilizando HTML, CSS y Javascript.
Por acá les dejo el diseño Figma: https://www.figma.com/community/file/971621075801349992
Paso 1
Debemos buscar la información dinámica de la cual vamos a extraer la información, en este caso un api rest gratis: https://openweathermap.org/
Hacemos el registro de usuario, entramos en el tab API Key y generamos un API.
Nos vamos a documentación y veremos el ejemplo de un API Call, por ejemplo Madrid, para eso debemos conocer la Latitud y Longitud.
https://api.openweathermap.org/data/2.5/weather?q=Madrid&appid={API key}
Deberíamos tener un resultado JSON como este:
Paso 2
Una vez tengamos el API Call de la región seleccionada. Abrimos visual Studio o cualquier otro IDE y creamos un div contenedor class=”app”.

De igual forma en el archivo css, copiamos las siguientes líneas de estilo
.app p,
.app h5 {
margin: 0.5rem;
}
.app {
width: 414px;
height: 800px;
display: block;
margin: auto;
text-align: center;
padding: 40px 0;
overflow: hidden;
border-radius: 50px;
background-image: linear-gradient(#30A2C5, #00242F);
font-family: 'Montserrat', sans-serif;
font-size: 16px;
}
.bar {
display: flex;
justify-content: space-between;
padding: 0 40px;
}
.bar a {
color: #fff;
font-size: 20px;
}
.titlebar {
line-height: 0.5rem;
color: #fff;
}
.titlebar h4 {
font-size: 40px;
font-weight: bold;
text-transform: uppercase;
margin: 2rem;
}
.titlebar .description {
text-transform: uppercase;
}
.temperature {
background: rgb(206, 206, 206);
border-radius: 500px;
width: 200px;
height: 200px;
text-align: center;
display: block;
margin: auto;
box-shadow: 0 30px 20px #1d1d1d36;
margin: auto;
margin-top: 30px;
margin-bottom: 30px;
}
.temperature img {
margin-bottom: -20px;
}
.temperature p {
font-size: 14px;
}
.temperature h2 {
margin: 0;
font-size: 60px;
font-weight: 300;
}
.extra {
display: flex;
justify-content: space-around;
color: #fff;
padding-bottom: 30px;
}
.extra .col .info {
padding-bottom: 10px;
}
.dataweather {
background: #fff;
padding: 20px;
border-radius: 50px;
margin-top: 20px;
display: block;
height: 400px;
font-size: 14px;
position: relative;
}
.dataweather .table {
display: flex;
justify-content: space-around;
}
.dataweather .table .box {
font-size: 14px;
border: #D4D4D4 solid 1px;
border-radius: 20px;
padding: 5px;
margin: 5px;
}
.dataweather .table div i {
font-size: 150%;
color: #585858;
}
.dataweather .firm {
padding-top: 20px;
font-size: 12px;
}
Tendremos entonces el contenedor de nuestro app

Paso 3
Verificamos en la cónsola que esta recibiendo la data a través del API, agregando &units=metric para que lea información en grados centígrados.
fetch('https://api.openweathermap.org/data/2.5/weather?q=Madrid&appid={API key}&units=metric')
.then(response => response.json())
.then(data => {
console.log(data);
});

Podemos observar como se extrae la data necesaria para llenar nuestro contenedor div. Si queremos obtener algún elemento del JSON, podemos hacerlos utilizando la palabra data y luego el nombre del elemento, por ejemplo name.
data.name
Si queremos obtener la data de un elemento anidado en un array, ejemplo temp, sería
console.log(data.main.temp)