Application Programming Interface. En generel betegnelse for et sæt standardiserede program- eller systemkald, som en programservice, en server eller et styresystem stiller til rådighed for f.eks. anvendelsesprogrammer. Et givet API definerer således et entydigt og afgrænset sæt programkald, der udgør den eneste mulige binding mellem anvendelsesprogrammet og den pågældende service.
Anvendelsen af API-begrebet har især vundet indpas efter introduktionen af styresystemerne OS/2 og Windows og den udbredte anvendelse af grafiske brugergrænseflader. Alle klasser af interne services i disse systemer er grupperet i forskellige API'er, der sikrer en skarp adskillelse mellem programmel og maskinel, med større åbenhed og flytbarhed til følge. API-begrebet anvendes også i forbindelse med f.eks. databaseservere, lokalnet og kommunikationsservere.
Især i forbindelse med client/server arkitekturer sikrer API'er en hidtil ukendt åbenhed og frihed til at vælge anvendelsesprogrammel, idet serverprogrammellets ressourcer stilles til rådighed for de enkelte brugere gennem et specifikt API.
Brugeren kan i denne forbindelse sammenligne et API med en stikdåse til lysnettet. Det eneste, brugeren behøver at vide inden anskaffelse af programmel, er typen af de API'er (eksemplificeret ved f.eks. 220V/50Hz vekselspænding og 2-benet stikkontakt), der er til stede i systemet. Hvorledes serveren er konstrueret (f.eks. elværk, vindmølle, dieselgenerator) eller af hvem, er ligegyldigt. Brugeren kan nu installere et vilkårligt anvendelsesprogram (f.eks. lampe, strygejern, radio) fra en vilkårlig leverandør i sit system, blot programmet kan udnytte det (eller de) pågældende API. På samme måde som eksempelvis en barbermaskine kan omstilles mellem forskellige lysnettyper (f.eks. 220V/50Hz eller 110V/60Hz vekselspænding), kan visse programmer under installationen bringes til at korrespondere med ét ud af flere mulige API'er. Det gælder især for programmer, der benyttes sammen med lokalnet eller databaseservere.
Det er primært programmører, der benytter sig af den formelle definition af et API. Definitionen består i en præcis beskrivelse af samtlige programkald, hvilke parametre de forskellige programkald kræver, samt hvilke data eller services der kan forventes af de enkelte programkald i en given situation. API'er er normalt knyttet til og beskrevet i et specifikt programmeringssprog, som oftest sproget C, men der er intet til hindring for, at samme API kan forekomme i flere programmeringssprog. Endelig definerer API'et også en eller flere konkrete implementeringer.
Det er vigtigt at bemærke, at API'er (i modsætning til traditionelle formelle standarder) også omfatter en konkret brugbar implementering. F.eks. indeholder standarddefinitionen af styresystemet UNIX, System V Interface Definition, en formel beskrivelse af samtlige programkald, men den udgør ikke et egentligt API i dagens betydning, idet implementeringerne af UNIX udføres forskelligt af de enkelte leverandører. API'er kan således opfattes som praktisk anvendelige realiseringer af (ofte de-facto) standarder.









