API er et grensesnitt som gir direkte tilgang til data og funksjonalitet i et datasystem, og gjør det svært mye enklere for et system eller en tjeneste å kommunisere med datasystemet. API-er benyttes i hovedsak av annen programvare, og det er sjelden sluttbrukere har behov for å benytte disse direkte.
API-er var tidligere noe en programmerer benyttet for å gi sine applikasjoner tilgang til funksjonalitet i operativsystem og maskinvare. I dag er API-er derimot vel så mye benyttet for å samhandle med nettjenester eller i nettkoblede enheter (typisk tingenes internett). Med et API kan man for eksempel enkelt integrere værmeldingen fra YR, sanntidsdata fra Avinor eller produktutvalget til Vinmonopolet i sitt eget system. API-er gjør det også enkelt å utvikle utvidelser til et system, slik som nettlesertillegg.
Et API kjennetegnes ved at man sender enkle forespørsler til et eksternt system, som så utfører en handling og gir en respons tilbake. Det er altså ikke et API dersom man benytter funksjonalitet i biblioteker eller rammeverk til oppgaven.
Standarder
Tidligere fantes det en rekke ulike standarder for hvordan et API skulle bygges opp, og en del tjenester lagde også sine egne varianter. I dag bygger del fleste opp sitt API basert på standarder som REST, SOAP eller RPC. Dette gjør at ferdige programmeringsbiblioteker forenkler bruken ytterligere.
Formål
At en leverandør åpner opp et API til sitt system drives frem av flere ulike hensyn. Blant annet kan det gjøre systemet mer populært, da det enkelt kan skreddersys og integreres i lang rekke andre løsninger. I tillegg kan man ta betalt for bruken av API, og dermed ha dette som en inntektskilde. Bevisstheten rundt åpne data gjør også at myndigheter og også en del private bedrifter velger å gjøre informasjon enkelt tilgjengelig for andre tjenester gjennom et API. Selv om et API gjør tilgang og bruk enkelt, betyr ikke det at tilgangen er uten kontroll. Ofte må for eksempel hver unike tjeneste ha et token (passord) for å få lov til å benytte API-et.
Å forstå programmering som benytter API-er mot andre tjenester er blant noe av programmererens viktigste kompetanse i dag.
Eksempel på et API
Store norske leksikon har sitt eget API. Man kan bruke det til å lete etter og hente ned artikler. Dette er et API som man kan kjøre som vanlige nettforespørsler på samme vis som man spør etter en nettside.
Hvis man for eksempel ønsker å lete etter artikler om Stavanger, kan man sende en forespørsel i form av en URL. Når man bruker et API sender man gjerne en slik URL fra dataprogrammet sitt som så tolker resultatet og presenterer det på en fornuftig måte. Man kan forøvrig også lime URL-en inn i adressefeltet til en vanlig nettleser for å teste.
https://snl.no/api/v1/search?query=Stavanger&limit=5
Komponent | Forklaring |
---|---|
https:// | Forespørselen bruker HTTPS-protokollen, som er den vanlige protokollen for å spørre etter nettsider |
snl.no/ | Domenet til tjeneren til Store Norske Leksikon |
api/v1 | Forteller tjeneren at dette er et spørsmål til API-et heller enn en forespørsel om den vanlige nettsida, og at forespørselen bruker versjon 1 av API-et |
Search? | Forteller at tjeneren skal utføre et søk |
Query=Stavanger | Forteller at tjeneren skal lete etter artikler som handler om Stavanger |
Limit=5 | Forteller at tjeneren skal levere maksimalt 5 treff |
Forespørselen blir så behandlet av nett-tjeneren snl.no. Den gir et svar i form av en JSON fil. Deretter må man, som bruker av API-et, skrive et program som tolker den mottatte JSON-fila.
I dette tilfellet gir forespørselen informasjon om følgende 5 artikler:
- Hovedartikkelen om Stavanger
- Stavanger – historie
- Stavanger – administrasjon, offentlige institusjoner og kultur
- Stavanger – bosetning
- Stavanger – samferdsel
Merk at hver enkelt API har sitt eget format for hvilke komponenter forespørselen består av. Alle API-er som bruker HTTPS vil inneholde de to første punktene, protokoll og domene, men vil ha sine egne format på det som kommer etterpå.