← Stopnja 5 – Izumitelj

Lekcija 2 od 8 ⏱ 30 minut Premium

Tvoj prvi fetch

Pokliči API neposredno iz JavaScripta in odgovor izpiši na stran.

Pokažem ti: fetch – naročanje s kodo

V prejšnji lekciji si API odprl ročno v brskalniku. Zdaj bo isto naredil JavaScript – z ukazom fetch:

const adresa = 'https://api.open-meteo.com/v1/forecast?latitude=49.19&longitude=16.61&current_weather=true';

const odpoved = await fetch(adresa);
const data = await odpoved.json();

console.log(data.current_weather.temperature);

Kaj se dogaja, vrstico za vrstico:

  1. fetch(adresa) – pošlje zahtevo (natakar gre v kuhinjo).
  2. awaitpočakaj, da pride nazaj. Internet potrebuje trenutek!
  3. odpoved.json() – odgovor pretvori v JavaScript objekt.
  4. Nato delaš s podatki kot z navadnim objektom: pika, pika, konec.
⚠️

await deluje le v funkciji z async ali v <script type="module">. Če brskalnik pokaže napako “await is only valid in async functions”, kodo ovij tako:

async function nacti() {
  // fetch and await go here
}
nacti();

Izpiši podatke na stran

Konzola je za programerje – obiskovalec hoče podatke na strani:

<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&current_weather=true');
  const data = await odpoved.json();

  document.querySelector('#teplota').textContent =
    `Right now it's ${data.current_weather.temperature} °C`;
</script>

Znano iz Čarovnika (querySelector, textContent) plus nov fetch. Nič več.

Zdaj si na vrsti 💪

  1. Na stran dodaj odstavek z id="teplota" in skript zgoraj.
  2. Koordinate spremeni na svoje mesto.
  3. Na prikaz dodaj tudi hitrost vetra (data.current_weather.windspeed).
  4. Bonus: ko je temperatura pod 0, v besedilo dodaj ”🥶 Bundle up!”.

Preveri se: Po nalaganju se na strani pokaže resnična trenutna temperatura. Če izklopiš Wi-Fi in osvežiš stran, ostane “Loading…” – dokaz, da podatki res prihajajo z interneta.

Kaj si vzameš iz te lekcije