← Poziom 5 – Wynalazca

Lekce 2 z 8 ⏱ 30 minut Premium

První fetch

Zavoláš API přímo z JavaScriptu a vypíšeš odpověď na svoji stránku.

Pokaż mi to: fetch – objednávka kódem

V minulé lekci sis API otevřel(a) v prohlížeči ručně. Teď to samé udělá tvůj JavaScript – příkazem 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);

Co se tu děje, řádek po řádku:

  1. fetch(adresa) – pošli požadavek (číšník odchází do kuchyně).
  2. awaitpočkej, než se vrátí. Internet chvíli trvá!
  3. odpoved.json() – převeď odpověď na JavaScript objekt.
  4. Pak už s daty pracuješ jako s obyčejným objektem: tečka, tečka, gotowe.
⚠️

await funguje jen uvnitř funkce označené async, nebo v <script type="module">. Když ti prohlížeč vypíše chybu „await is only valid in async functions”, zabal kód do:

async function nacti() {
  // sem patří fetch a await
}
nacti();

Vypiš data na stránku

Konzole je pro programátory – návštěvník chce data vidět na stránce:

<p id="teplota">Wczytuję…</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 =
    `Právě teď je ${data.current_weather.temperature} °C`;
</script>

Známé věci z Czarodzieja (querySelector, textContent) + nový fetch. Nic víc.

Teraz ty 💪

  1. Přidej na svůj web odstavec s id="teplota" a skript výše.
  2. Změň souřadnice na svoje město.
  3. Přidej do výpisu i rychlost větru (data.current_weather.windspeed).
  4. Bonus: když je teplota pod 0, přidej k textu „🥶 Oblékni se!”.

Kontrola: Na tvé stránce se po načtení objeví skutečná aktuální teplota. Když vypneš Wi-Fi a obnovíš stránku, zůstane „Wczytuję…” – vidíš, že data opravdu chodí z internetu.

Co si z téhle lekce odnést