Tema
/
Interneto svetainių kliento dalies kūrimas JS
📖 Teorija

Tinklas, fetch ir API raktas

Iki šiol duomenys buvo išgalvoti. Dabar atsisiųsim tikras NASA nuotraukas iš „Astronomy Picture of the Day" (APOD) API.

Tinklo užklausos daromos su fetch, o atsakymo laukiam su async/await:

async function load() {
  const response = await fetch(url);   // laukiam, kol serveris atsakys
  const data = await response.json();  // laukiam, kol kūnas virs JSON
}

await sustabdo funkciją, kol pažadas (Promise) išsipildo — kodas skaitosi iš viršaus žemyn, nors po vidum viskas asinchroniška.

API raktas. NASA API reikalauja rakto. config.js kol kas turi DEMO_KEY — bendrą testinį raktą. Bet DEMO_KEY riboja ~30 užklausų per valandą, ir tu tą ribą pasieksi (kelios perkrovimai — ir jau). Todėl namų darbe pasiimsi savo nemokamą raktą iš api.nasa.gov. Sakau tiesiai, nes tai ne teorija — tai atsitiks tau šiandien.

Patikimumas — tikra pamoka. Šį kursą pradėjom nuo kito API (SpaceX), bet jo serveris buvo miręs (SSL 525 klaida). Teko rinktis kitą. Išvada: trečiųjų šalių API miršta — juos išjungia, keičia, apriboja. Pasirinkti API yra patikimumo sprendimas, ne tik „kuris turi gražesnius duomenis". NASA APOD stabilus ir viešas, todėl jį ir naudojam.

Ir svarbiausias techninis spąstas, kurį nagrinėsim: fetch NEMETA klaidos, kai serveris grąžina 404 ar 500. Jam tai — „sėkmingai gautas atsakymas, tik su klaidos statusu". Klaidą turi patikrinti pats.