close

Gränssnitt för applikationsprogrammering

Hoppa till navigering Hoppa till sökning
Gränssnitt för applikationsprogrammering
Gränssnitt för applikationsprogrammering

I ett datorprogram , med applikationsprogrammeringsgränssnitt ( API ), på italienska " applikationsprogrammeringsgränssnitt ", indikerar det en uppsättning procedurer (vanligtvis grupperade efter specifika verktyg) utformade för att lösa ett specifikt kommunikationsproblem mellan olika datorer eller mellan olika programvaror eller mellan olika mjukvarukomponenter [1] ; ofta betecknar denna term programvarubiblioteken för ett programmeringsspråk [2] , även om API:n mer korrekt är metoden genom vilken biblioteken används för att övervinna ett specifikt informationsutbyteproblem [3].

Funktioner

Det finns olika designmodeller för API:er. Gränssnitt avsedda för maximal exekveringshastighet består ofta av en serie funktioner , procedurer , variabler och datastrukturer . Det finns även andra modeller som tolkar som används för att utvärdera uttryck som med ECMAScript / JavaScript . Ett bra API ger en "black box", dvs en abstraktionsnivå som gör att programmeraren slipper veta hur API:n fungerar på en lägre nivå. Detta gör att du kan designa om eller förbättra funktionerna i API:t utan att ändra koden som är beroende av den.

Det finns två policyer för API-publicering:

  1. Vissa företag behåller avundsjukt sina API:er. Till exempel tillhandahåller Microsoft endast officiella API:er till registrerade Xbox- utvecklare . Detta beror på att den har för avsikt att begränsa antalet personer som kan skriva spel till konsolen för att begränsa piratkopiering.
  2. Andra företag distribuerar API:erna offentligt. Till exempel förser Microsoft själv allmänheten med information om sitt Windows API , inklusive Microsoft Foundation Classes (MFC), för att skriva programvara för Windows -plattformen .

Vissa API:er, till exempel de vanliga i ett operativsystem , implementeras som ett separat bibliotek och distribueras med operativsystemet. Andra API:er kräver att programvaruutgivare integrerar API:n direkt i applikationen. Detta gör en ytterligare skillnad i det föregående exemplet.

Microsoft Windows API:er levereras med operativsystemet och alla kan använda dem. Programvara för inbyggda system som videospelskonsoler faller i allmänhet i kategorin där API:er är integrerade med applikationen. Även om den officiella Playstation API-dokumentationen kan vara intressant läsning, är den nästan värdelös utan motsvarande implementering i form av ett separat bibliotek eller utvecklarkit.

Ett API som inte kräver betalning av avgifter för sin åtkomst och användning kallas "öppet". API:erna som tillhandahålls av fri programvara , till exempel programvara som distribueras under GPL -licensen , är öppna per definition, eftersom du kan komma åt källan till programvaran och förstå hur den fungerar. Även om det finns en " referensimplementering " för ett API (som Microsoft Windows för Windows API ) finns det inget som hindrar skapandet av en alternativ implementering. Till exempel kan det mesta av Windows API tillhandahållas på ett Unix -system av programvara som heter Wine .

I allmänhet är det ett brott mot lagen att analysera implementeringen av ett API för att producera ett kompatibelt. Denna teknik kallas reverse engineering . Den rättsliga situationen i dessa fall är tvetydig så det är bättre att ta itu med problemet innan omvänd ingenjörsverksamhet har påbörjats. Till exempel kan ett API i sig innehålla ett patent .

Syfte

Syftet är att få en abstraktionsnivå på högre nivå , vanligtvis mellan hårdvaran och programmeraren eller mellan mjukvara på låg och hög nivå , vilket förenklar programmeringsarbetet . Faktum är att API:et tillåter programmerare att undvika att skriva om alla funktioner som behövs för programmet varje gång från början, det vill säga från en låg nivå, och därmed falla inom det bredare konceptet kodåteranvändning . API:erna själva representerar därför en mellanliggande abstraktionsnivå: programvaran som tillhandahåller ett visst API kallas en API-implementering.

Posix

Eftersom det finns många varianter av API:er skapades ett projekt 1985 för att skapa en standard. Familjen som omfattar dessa standarder tar namnet Posix (akronym för "Portable Operating System Interface for Unix"), vars namn skapades av Richard Stallman efter begäran från IEEE om ett namn som är lätt att memorera.

Användningsexempel

Du kan tänka dig ett program som skriver orden " Hej världen " på en skärm med olika abstraktionsnivåer:

  1. Skriv ner allt själv:
    1. Rita formerna på bokstäverna H, e, l, l, o, W, o, r, l, d på ett pappersark.
    2. Förbered en matris av svarta och vita rutor som har formen av var och en av bokstäverna
    3. Kom på ett sätt att programmera CPU :n att placera denna matris i grafikkortets bildrutebuffert .
    4. Förbered grafikkortet för att generera rätt signal från rambuffertens innehåll .
  2. Använd ett operativsystem för att utföra en del av uppgiften:
    1. Ladda i minnet en datastruktur som kallas "font" som tillhandahålls av operativsystemet.
    2. Få operativsystemet att visa ett tomt fönster.
    3. Låt operativsystemet rita texten "Hello World" på fönstret med det laddade teckensnittet.
  3. Använd en applikation (som i sin tur använder operativsystemet) för allt arbete:
    1. Skriv ett HTML -dokument som innehåller orden "Hello World".
    2. Öppna dokumentet med en webbläsare .

Uppenbarligen kräver tillvägagångssättet på första nivån många steg och var och en av dessa är mycket mer komplex än de på de efterföljande nivåerna. En annan nackdel med det första tillvägagångssättet är att det är opraktiskt att använda det om du behöver visa en viss mängd information på skärmen; med den andra metoden är operationen mycket enklare, och i den tredje är det tillräckligt att skriva "Hello World". Användning av API:er på högre nivå innebär vanligtvis en viss förlust av flexibilitet; till exempel kan det vara mycket svårt på webbläsarnivå att rotera text med blinkande kanter runt en punkt, medan den här uppgiften kan göras enkelt på en lägre nivå. Denna skillnad är ett typiskt exempel på en avvägning som kan uppstå med hjälp av ett API.

API-exempel

Anteckningar

  1. ^ Martin Reddy, API-design för C++ , Morgan Kaufmann, 2011, ISBN  978-0-12-385004-1 , OCLC  704559821 . Hämtad 16 maj 2022 .
  2. ^ Walkthrough: Calling Windows API (Visual Basic) , på Docs.Microsoft.com , 20 juli 2015. Hämtad 13 februari 2019 .
  3. ^ API vs bibliotek (Vad är skillnaden?) , På rapidapi.com .

Relaterade artiklar

Externa länkar