Application programming interface: Forskelle mellem versioner
Content deleted Content added
Rettet stave- og grammatikfejl |
Apoltix (diskussion | bidrag) Artikel skrevet om. Den beskrev mere eller mindre et framework, og ikke et API, og på en dårlig måde. Gendannet+tilpasset lidt fra tidligere version. |
||
Linje 1:
'''''Application Programming Interface''''', forkortet '''''API''''', er en softwaregrænseflade, der tillader et stykke [[software]] at interagere med andet software. Et API er implementeret i [[Applikation (datalogi)|applikationer]] (programmer), [[Programbibliotek|programbiblioteker]] og [[styresystem|styresystemer]]. Et typisk eksempel på dette er når applikationer "taler" med styresystemet for at åbne en [[Fil (dataobjekt)|fil]], hvorefter styresystemet på programmets vegne vil indlæse filen fra, eksempelvis, en [[harddisk]]<!-- faktisk er det kernen der gør dette, men det går stadig gennem OS'et -->.
I en nøddeskal kan et API betegnes som en måde at tilbyde 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 [[#Opdateringer af API'er|opdaterer API'et]].
API'er findes i alle styresystemer, der tillader udvikling af [[Applikation (datalogi)|applikationer]]. Dette er krævet for at programmet og styresystemet kan kommunikere med hinanden. Det definerer en række [[Protokol (regel)|protokoller]]<!-- det er IKKE "Protokol (edb)" der er tale om her! -->, 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 [[Grafisk brugerflade|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 vidt brug på [[Internet|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 [[Twitter]]<ref name="twitter">[http://dev.twitter.com/ Twitter Developers]</ref> og [[Flickr]]<ref name="flickr">[http://www.flickr.com/services/api/ Flickr API]</ref> API'er til rådighed.
==Opdateringer af API'er==
{{SværtStof}}
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 [[Optimering (it)|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==
<references />
{{IT-stub}}
[[Kategori:Datalogi]]
[[Kategori:Programmering]]
[[ar:واجهة برمجة التطبيقات]]
|