Velkommen til Hent data: JSON og fetch! Dette er leksjon 1 av 9. Du kan starte uten konto — fremgangen lagres mens du jobber, og du kan ta en pause når som helst.
Hva et API er
Avtalen som lar programmer snakke sammen — forklart med en meny.
Programmer snakker med hverandre hele dagen: appen din spør en server, serveren svarer med data. Men for at to programmer skal forstå hverandre, trenger de en felles avtale. Den avtalen heter API — og etter denne leksjonen er ordet ikke lenger magisk.
En avtale om spørsmål og svar
API står for *Application Programming Interface*, men det er mindre snålt enn det høres ut. Et API sier nøyaktig hva du kan spørre om, og hvilken form svaret kommer i — ingenting mer. Du kan ikke stille vilkårlige spørsmål, og du kan ikke få svaret servert akkurat slik du selv vil. Spørsmål og svar følger avtalen, alltid.
Restauranten
Tenk på et besøk på en restaurant. Menyen er API-et. Den sier hva du kan bestille, med navn alle parter er blitt enige om. Du bestiller fra menyen — du går ikke inn på kjøkkenet og lager maten selv. Kjøkkenet er serveren: det tar imot bestillingen, jobber med ting du ikke ser, og serverer resultatet på en tallerken som passer på bordet ditt. Du trenger ikke vite hvordan kjøkkenet jobber. Du trenger bare å kunne lese menyen og bestille riktig.
Svaret kommer som tekst: JSON
Når serveren svarer, sender den tekst — som oftest i formatet JSON: objekter og lister skrevet som streng. Programmet ditt må gjøre teksten om til et ekte objekt før du kan lese feltene. JavaScript har to funksjoner for dette, én for hver retning:
const elev = { navn: "Amina", alder: 24, by: "Oslo" }; // et vanlig JS-objekt // Objekt til streng — slik data reiser over nettet:const somTekst = JSON.stringify(elev);console.log(somTekst); // {"navn":"Amina","alder":24,"by":"Oslo"}console.log(typeof somTekst); // string // Streng tilbake til objekt — slik programmet ditt kan bruke det:const tilbake = JSON.parse(somTekst);console.log(tilbake.navn); // "Amina"console.log(typeof tilbake); // objectPrøv selv
Fra tekst til data
Serveren har svart med strengen '{"navn":"Amina","alder":24}'. Hva gir JSON.parse(avSvar) deg?
Det finnes ikke feil her — trykk på alle tre hvis du vil.
Tips
Dokumentasjonen er menyen til utviklere
Skal du bruke et ekte API, leser du dokumentasjonen: hvilke spørsmål kan stilles, og hvordan ser svaret ut? Alt annet er kjøkkenets sak — du skal ikke gjette deg fram til hvordan serveren jobber, bare hvordan den snakker.
Ordforklaring
Tekstformat for å sende data, skrevet som objekter og lister. Nesten alle API-er på nettet snakker JSON. Klikk på ordet hvis du vil ha hele forklaringen fra ordboken.
Du kan nå
- forklare hva et API er: en avtale om spørsmål og svar
- bruke restaurant-analogien: meny, bestilling, kjøkken
- gjøre objekt om til JSON-streng og tilbake med JSON.stringify og JSON.parse