Vad är ett API?
Du har sannolikt sett termen "API" komma upp. Operativsystem, webbläsare och appuppdateringar meddelar ofta nya API för utvecklare. Men vad är ett API?
Programmeringsgränssnitt
Termen API är en akronym, och den står för "Application Programming Interface."
Tänk på ett API som en meny i en restaurang. På menyn finns en lista över rätter du kan beställa, tillsammans med en beskrivning av varje maträtt. När du anger vilka menyalternativ du vill, gör restaurangen köket arbetet och ger dig några färdiga rätter. Du vet inte exakt hur restaurangen förbereder den maten, och du behöver inte verkligen.
På samma sätt visar ett API ett antal operationer som utvecklare kan använda, tillsammans med en beskrivning av vad de gör. Utvecklaren behöver inte nödvändigtvis veta hur exempelvis ett operativsystem bygger och presenterar dialogrutan "Spara som". De behöver bara veta att den är tillgänglig för användning i deras app.
Detta är inte en perfekt metafor, eftersom utvecklare kan behöva lämna sina egna data till API för att få resultaten, så kanske det är mer som en snygg restaurang där du kan ge några av dina egna ingredienser köket kommer att fungera med.
Men det är i stort sett korrekt. API: er tillåter utvecklare att spara tid genom att dra nytta av en plattforms implementering för att göra det nitty-gritty arbetet. Detta bidrar till att minska hur mycket kodutvecklare behöver skapa, och hjälper också till att skapa mer konsistens över olika appar på samma plattform. API: er kan styra åtkomst till hårdvaru- och programvaru resurser.
API: er gör livet enklare för utvecklare
Låt oss säga att du vill utveckla en app för en iPhone. Apples iOS-operativsystem tillhandahåller ett stort antal API: er, vilket alla andra operativsystem gör, för att göra det enklare för dig.
Om du vill bädda in en webbläsare för att visa en eller flera webbsidor, behöver du till exempel inte programmera din egen webbläsare från början för din ansökan. Du använder WKWebView API för att bädda in ett WebKit (Safari) webbläsarobjekt i din applikation.
Om du vill ta bilder eller video från iPhone-kameran behöver du inte skriva ditt eget kamera gränssnitt. Du använder kameraprogrammet för att bädda in iPhone: s inbyggda kamera i din app. Om API: er inte existerade för att göra det enkelt, måste apputvecklare skapa sin egen kameraprogramvara och tolka kamerans hårdvaruinsats. Men Apples operativsystemutvecklare har gjort allt detta hårda arbete, så utvecklarna kan bara använda kameraprogrammet för att bädda in en kamera och sedan fortsätta bygga sin app. Och när Apple förbättrar kameraprogrammet, kommer alla appar som bygger på det att utnyttja den förbättringen automatiskt.
Detta gäller för varje plattform. Vill du till exempel skapa en dialogruta i Windows? Det finns ett API för det. Vill du stödja fingeravtrycksautentisering på Android? Det finns också ett API för det, så du behöver inte testa alla olika Android-tillverkare fingeravtryckssensor. Utvecklare behöver inte återuppfinna hjulet om och om igen.
API: n Kontrollerar åtkomst till resurser
API: er används också för att kontrollera åtkomst till hårdvaruaggregat och programvarufunktioner som en applikation inte nödvändigtvis behöver ha tillstånd att använda. Därför spelar API: er ofta en stor roll i säkerheten.
Om du till exempel har besökt en webbplats och sett ett meddelande i din webbläsare om att webbplatsen frågar om din exakta plats, försöker den webbplatsen använda geolocation API i din webbläsare. Webbläsare avslöjar API så här för att göra det enkelt för webbutvecklare att komma åt din plats. De kan bara fråga "var är du?" Och webbläsaren gör det svåra arbetet med att komma åt GPS eller närliggande Wi-Fi-nätverk för att hitta din fysiska plats.
Men webbläsare exponerar också denna information via ett API, eftersom det är möjligt att styra åtkomst till den. När en webbplats vill ha tillgång till din exakta fysiska plats, är det enda sättet de kan få det via plats API. Och när en webbplats försöker använda den kan du-användaren välja att tillåta eller neka denna förfrågan. Det enda sättet att få tillgång till hårdvara resurser som GPS-sensorn är genom API, så webbläsaren kan styra åtkomst till hårdvaran och begränsa vilka appar kan göra.
Samma princip används på moderna mobila operativsystem som iOS och Android, där mobila appar har behörigheter som kan genomföras genom att kontrollera åtkomst till API: er. Om en utvecklare exempelvis försöker komma åt kameran via kameraprogrammet, kan du neka tillståndsförfrågan och appen har ingen möjlighet att komma åt enhetens kamera.
Filsystem som använder behörigheter, som de gör på Windows, Mac och Linux, har de behörigheterna som drivs av filsystemet API. En typisk applikation har inte direkt tillgång till den råa fysiska hårddisken. I stället måste appen komma åt filer via ett API.
API: er används för kommunikation mellan tjänster
APIer används också av alla andra orsaker. Om du till exempel någonsin sett ett Google Maps-objekt inbäddat på en webbplats använder den webbplatsen Google Maps API för att bädda in den kartan. Google avslöjar API: er för webbutvecklare, som sedan kan använda API: erna för att plotta komplexa objekt direkt på deras hemsida. Om API: er som detta inte existerade, måste utvecklare kanske skapa egna kartor och ge egna kartdata bara för att sätta en liten interaktiv karta på en webbplats.
Och eftersom det är ett API kan Google styra åtkomst till Google Maps på tredje parts webbplatser och se till att de använder det på ett konsekvent sätt i stället för att försöka lägga in en ram som visar Google Maps-webbplatsen, till exempel.
Detta gäller för många olika onlinetjänster. Det finns API för att begära textöversättning från Google Translate eller inbäddning av Facebook-kommentarer eller tweets från Twitter på en webbplats.
OAuth-standarden definierar också ett antal API som tillåter dig att logga in på en webbplats med en annan tjänst, till exempel att använda dina Facebook-, Google- eller Twitter-konton för att logga in på en ny webbplats utan att skapa ett nytt användarkonto bara för den webbplatsen . API: er är standardkontrakt som definierar hur utvecklare kommunicerar med en tjänst och vilken typ av utdata dessa utvecklare borde förvänta sig att få tillbaka.
Om du har fått igenom det här får du en bättre bild av vad ett API är. I slutändan behöver du inte riktigt veta vad ett API är om du inte är en utvecklare. Men om du ser en mjukvaruplattform eller tjänst har lagt till nya API för olika hårdvaror eller tjänster, borde det vara lättare för utvecklare att dra fördel av sådana funktioner.
Bildkredit: patpitchaya / Shutterstock.com.