[go: up one dir, main page]

Versj. 19
Denne versjonen ble publisert av Eva Hadler Vihovde 12. februar 2024. Artikkelen endret 188 tegn fra forrige versjon.

Et 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 netttjenester eller i nettkoblede enheter (typisk internet of things). 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.

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.

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.

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 nett-forespø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

Denne forespørselen har følgende komponenter:

  • https:// - sier at denne 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 leite 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 sin 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å. Dokumentasjonen på hele API-en til Store Norske Leksikon finner du her