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.