Vou mostrar-te: fetch – encomendar com código
Na última lição, abriste uma API no browser à mão. Agora o teu JavaScript faz o mesmo – com o comando fetch:
const adresa = 'https://api.open-meteo.com/v1/forecast?latitude=49.19&longitude=16.61¤t_weather=true';
const odpoved = await fetch(adresa);
const data = await odpoved.json();
console.log(data.current_weather.temperature);
O que acontece aqui, linha a linha:
fetch(adresa)– envia o pedido (o empregado vai à cozinha).await– espera que volte. A internet demora um momento!odpoved.json()– converte a resposta num objeto JavaScript.- Depois trabalhas com os dados como qualquer objeto: ponto, ponto, feito.
await só funciona dentro de uma função marcada async, ou num <script type="module">. Se o browser mostrar o erro “await is only valid in async functions”, envolve o teu código assim:
async function nacti() {
// fetch and await go here
}
nacti();
Imprime os dados na página
A consola é para programadores – um visitante quer ver os dados na página:
<p id="teplota">Loading…</p>
<script type="module">
const odpoved = await fetch('https://api.open-meteo.com/v1/forecast?latitude=49.19&longitude=16.61¤t_weather=true');
const data = await odpoved.json();
document.querySelector('#teplota').textContent =
`Right now it's ${data.current_weather.temperature} °C`;
</script>
Coisas familiares do Mago (querySelector, textContent) mais o novo fetch. Nada mais.
Agora és tu 💪
- Adiciona um parágrafo com
id="teplota"e o script acima ao teu site. - Muda as coordenadas para a tua cidade.
- Adiciona também a velocidade do vento ao ecrã (
data.current_weather.windspeed). - Bónus: quando a temperatura estiver abaixo de 0, adiciona «🥶 Bundle up!» ao texto.
Verifica: A temperatura atual a sério aparece na tua página depois de carregar. Se desligares o Wi-Fi e atualizares a página, fica em «Loading…» – prova de que os dados vêm mesmo da internet.
O que ficas a saber desta lição
fetch(adresa)envia o pedido,awaitespera pela resposta..json()converte a resposta num objeto com que já sabes trabalhar.- Dados de toda a internet estão agora a uma função de distância.
© 2026 Ing. Martin Polak / AlgoRhino · Condições de uso do conteúdo