Application programming interface

Application Programming Interface, forkortet API, er en softwaregrænseflade, der tillader et stykke software at interagere med andet software. Et API er implementeret i applikationer (programmer), programbiblioteker og styresystemer. Et typisk eksempel på dette er, når applikationer "taler" med styresystemet for at åbne en fil, hvorefter styresystemet på programmets vegne vil indlæse filen fra, eksempelvis, en harddisk.

I en nøddeskal kan et API betegnes som en måde at tilbyde it-tjenester, herunder data, fra et system i et andet system.

Koncept 
Et API definerer et sæt af kendte (dokumenterede), og således eksternt brugbare funktioner, som andre programmer kan bruge i forbindelse med udførsel af en opgave. I modsætningen til publicerede funktioner, der altså er eksternt brugbare, findes der ikke-eksternt brugbare funktioner, såkaldte private funktioner, der er forbeholdt de udviklere, der oprindeligt har lavet API'et, eller den software der stiller API'et til rådighed. Hvis en udvikler benytter sig af en privat funktion, der ikke er dokumenteret, kan programmet og dets funktionalitet gå i stykker, så snart udvikleren opdaterer API'et.

API'er findes i alle styresystemer, der tillader udvikling af applikationer. Dette er krævet for at programmet og styresystemet kan kommunikere med hinanden. Det definerer en række protokoller, regelsæt, der gør at programmet kan bede styresystemet om at gøre specifikke ting, og omvendt. Er disse ikke implementeret vil funktionaliteten af programmet være stærkt begrænset, eftersom rigtig mange handlinger bliver behandlet af selve styresystemet. Eksempelvis er fremvisning af grafiske brugergrænseflader ofte håndteret af operativsystemet, og ikke selve programmet.

(Et API må ikke forveksles med et framework, der overfladisk kan betegnes som værende byggeklodser for programmer, som ofte er standardiserede.)

Brug 
Udover brug i styresystemer, er API'er også i vid brug på internettet: adskillige populære websider stiller API'er til rådighed, som tillader tredjeparts websider eller -programmer at bruge websidens funktioner og/eller data. Eksempelvis har Google, Facebook, Twitter og Flickr API'er til rådighed.

Opdateringer af API'er 

Hvert API har typisk et versionsnummer, der skiftes hver gang der laves tilføjelser eller ændringer i grænsefladen. Når et API ændres kan det blive inkompatibelt med programmer, der bruger gamle versioner af det API. Der findes flere typer ændringer: helt interne ændringer, som retter fejl eller gør de funktioner, der stilles til rådighed mere effektive; tilføjelse af nye muligheder, der ikke har indvirkning på eksisterende programmer; samt gennemgribende ændringer, der ikke bevarer den eksisterende grænseflade.

Interne ændringer har ingen påvirkning på selve funktionaliteten af programmet, men kan eksempelvis gøre dette hurtigere, på grund af optimeringer. Hvis et program laves om, så nye funktionaliteter udnyttes, vil programmet ikke nødvendigvis længere kunne anvendes med ældre versioner af API'et. Afhængig af programmet og API'et vil programmøren kunne bibeholde en vis mængde bagudkompatibilitet, ved at undersøge versionen af API'et, og kun tilbyde de funktioner der er til rådighed. Ved gennemgribende ændringer er det oftest nødvendigt at rette brugen af API'et i de eksisterende programmer.

Se også 
 Framework
 Programbibliotek

Referencer 

Datalogi
Programmering