Hvad er en API, og hvordan fungerer den i praksis?

Hvad er en API, og hvordan fungerer den i praksis?
Foto: Zayed Hossain / Pexels

Hvad er en API?

API står for Application Programming Interface. På dansk kan man oversætte det nogenlunde til programmeringsgrænseflade, men det forklarer ikke rigtig meget i sig selv. En mere præcis beskrivelse er: en API er et sæt regler og mekanismer, der gør det muligt for to forskellige systemer at tale sammen og udveksle data på en struktureret måde.

Tænk på det som en tjener på en restaurant. Du sidder ved bordet og ved, hvad du vil bestille. Køkkenet ved, hvordan maden laves. Men du går ikke selv ind i køkkenet og roder rundt. Tjeneren formidler din bestilling og bringer resultatet tilbage til dig. En API gør præcis det samme mellem to stykker software.

Eksempler på API'er møder du konstant, selv hvis du aldrig har tænkt over det. Når du logger ind på en hjemmeside med dit Google-login, er det en API der håndterer kommunikationen. Når du ser en vejr-widget på en hjemmeside, henter den data fra en vejrtjenestes API. Når din webshop sender en ordrebekræftelse via SMS, sker det gennem en tredjeparts API.

Sådan fungerer en API i praksis

En API fungerer efter et enkelt princip: et system sender en forespørgsel (kaldet et request), og et andet system svarer med de ønskede data eller udfører en handling (kaldet et response). Det foregår typisk over internettet ved hjælp af protokoller som HTTP eller HTTPS, præcis som når din browser henter en hjemmeside.

De mest udbredte API-typer i dag er REST API'er og GraphQL API'er. REST (Representational State Transfer) er den klassiske og mest udbredte tilgang. Her kommunikerer systemerne via standardiserede handlinger: GET henter data, POST opretter noget nyt, PUT opdaterer eksisterende data, og DELETE fjerner det. Disse handlinger svarer meget til hvad du kender fra databaser og filsystemer.

GraphQL er en nyere tilgang, der giver klienten mere kontrol over præcis hvilke data den vil have. I stedet for at hente en hel datablok og derefter filtrere den, kan man med GraphQL specificere ned til enkeltfelter. Det gør det særligt velegnet til komplekse applikationer med mange datapunkter.

Et konkret eksempel trin for trin

Forestil dig en mobilapp der viser aktiekurser. Sådan kan et API-kald se ud:

1. Appen sender en forespørgsel til en finansiel datatjenestes API: "Giv mig den aktuelle kurs på NOVO B."

2. API'et modtager forespørgslen, tjekker at den er gyldig og autoriseret, slår kursen op i sin database og sender svaret tilbage i et standardiseret format, typisk JSON.

3. Appen modtager JSON-svaret, udtrækker kursen og viser den til brugeren.

Hele denne proces tager typisk under et sekund. Brugeren ser bare et tal, men bag kulisserne er der sket en præcis, struktureret dataudveksling.

Hvad er JSON, og hvorfor bruges det?

JSON (JavaScript Object Notation) er det format de fleste moderne API'er bruger til at sende data frem og tilbage. Det er let at læse for mennesker og let at behandle for maskiner. Et simpelt JSON-svar kan se sådan ud:

{ "aktie": "NOVO B", "kurs": 512.40, "valuta": "DKK" }

Data er organiseret i nøgle-værdi-par, og selv komplekse datahierarkier kan beskrives i dette format uden besvær. Alternativet XML bruges stadig i ældre systemer, men JSON er standarden i nyere udvikling.

A woman writes 'Use APIs' on a whiteboard, focusing on software planning and strategy.
Foto: ThisIsEngineering / Pexels

Åbne API'er versus lukkede API'er

Ikke alle API'er er ens tilgængelige. Der er grundlæggende to typer:

Åbne API'er (også kaldet offentlige API'er) er tilgængelige for alle udviklere. Mange store tjenester som Google Maps, Stripe og Twilio tilbyder åbne API'er, som du kan integrere i dine egne systemer mod betaling eller inden for visse grænser. Det betyder, at du som virksomhed kan hente kortdata, behandle betalinger eller sende SMS-beskeder uden at bygge den infrastruktur selv.

Lukkede API'er (private eller interne API'er) bruges internt i en virksomhed eller kun deles med udvalgte partnere. De er ikke tilgængelige for offentligheden og bruges typisk til at koble virksomhedens egne systemer sammen, for eksempel at lade et lagersystem tale med en webshop.

Mange virksomheder har begge dele: interne API'er der styrer forretningslogikken, og integrationer til eksterne API'er der tilfører funktionalitet udefra.

Sikkerhed i API'er

Fordi API'er eksponerer data og funktionalitet, er sikkerhed centralt. De mest almindelige mekanismer er:

API-nøgler er unikke tokens der identificerer den applikation der kalder API'et. Tjenesten kan dermed begrænse adgang til autoriserede klienter og se præcis hvem der bruger ressourcerne.

OAuth 2.0 er en udbredt standard til brugerbaseret autorisation. Det er OAuth du bruger, når du tillader en app at tilgå din Google- eller Facebook-konto uden at give den dit kodeord direkte.

Rate limiting begrænser hvor mange forespørgsler en klient må sende inden for et givent tidsrum. Det beskytter API'et mod misbrug og overbelastning.

Sikkerheden er ikke noget man tilføjer bagefter. Det er en del af arkitekturen fra begyndelsen. Hvis du er i gang med et projekt der involverer API-udvikling, kan du med fordel læse om hvordan du tester ny software effektivt, herunder API-endpoints.

Close-up view of a high-tech computer interface displaying cyber security data, enhancing digital protection.
Foto: Tima Miroshnichenko / Pexels

Hvornår har du brug for en brugerdefineret API?

Mange projekter klarer sig fint med eksisterende, tredjeparts API'er. Men der er situationer, hvor det giver mening at få udviklet sin egen:

Hvis du har et eksisterende system, for eksempel et ældre ERP- eller bookingsystem, der ikke kommunikerer med dine nye digitale løsninger, kan en brugerdefineret API bygge broen. Det er langt billigere end at udskifte hele systemet.

Hvis du bygger en mobilapp der skal trække på data fra din backend, er en veldesignet API afgørende for ydeevne og sikkerhed. En app der taler direkte med databasen uden et API-lag imellem er et sikkerhedsproblem.

Hvis du sælger dine egne data eller din funktionalitet til andre virksomheder, er en API det naturlige produkt. Du styrer præcis hvad der eksponeres og på hvilke vilkår.

Prisen på API-udvikling afhænger meget af kompleksitet, antal endpoints og krav til sikkerhed og skalerbarhed. Du kan læse mere om hvad API-udvikling typisk koster, og hvilke faktorer der påvirker prisen.

API'er og backend-arkitektur

En API eksisterer sjældent alene. Den er typisk en del af en større backend-arkitektur der styrer forretningslogik, databaser og integrationer. En veldimensioneret backend er forudsætningen for, at API'et performer godt under belastning. Vil du forstå mere om det, er der en grundig gennemgang i guiden om optimering af backend-ydeevne.

I takt med at kunstig intelligens integreres i flere systemer, spiller API'er en stadig større rolle som bindeled. Mange AI-tjenester eksponeres netop via API, så udviklere kan kalde dem direkte fra deres applikation uden at kende det matematiske fundament bag.

Det vigtigste at huske

En API er ikke et modeord. Det er en konkret teknisk mekanisme der gør det muligt for systemer at arbejde sammen. Uanset om du overvejer at bygge en ny digital løsning, koble eksisterende systemer sammen eller udvide din platform med ny funktionalitet, er det værd at forstå hvad en API er, og hvad den kan.

God API-design handler om klarhed, sikkerhed og skalerbarhed. Et API der er svært at bruge, udokumenteret eller designet uden sikkerhed i tankerne, skaber problemer længere nede ad vejen.

Har du et konkret projekt i tankerne, og er du i tvivl om hvad der teknisk set kræves, er du velkommen til at tage en uforpligtende snak med Sahari, der arbejder med netop denne type softwareudvikling til daglig.

Kontakt os