Vad är API?

Posted on April 07, 2016

Ett av kodknackarens vanligaste begrepp

Du har säkert sett eller hört förkortningen API, ett uttryck som man ganska snart råkar på när man börjar koda. Men vad betyder det egentligen? API, Application Program Interface, är ett slags protokoll som används för att program (även kallat applikationer) enklare ska kunna snacka med varandra. En slags tolk, som kommunikationen går genom.

Exempel 1: En app hämtar information eller funktioner från en annan app


Säg att du har en väderapp i din telefon. För att den ska kunna fungera måste den hämta väderprognoser. Kanske vänder den sig till SMHI:s webbapp. Väderappen kan förstås ha programmerats till att gå in på SMHI.se för att hämta informationen därifrån, ungefär som du eller jag själv kan göra. Men detta hade lätt kunnat leda till problem. Om SMHI ändrar sin hemsida till exempel. Appen är programmerad att hämta information från förstasidan, men informationen har flyttats till en annan sida.

Här är API en mer robust lösning. Eftersom väderappen är ett program kan den prata med SMHI:s API för att hämta ut data. Detta sker enligt API:ets regler (också kallat dokumentation) som säger ”så här ska du prata för att jag ska förstå” och ”så här förstår du det svar jag kommer skicka tillbaka”.

Väderappen skickar ett meddelande till SMHI:s API, utformat efter reglerna. Appen säger ”Hallå, jag vill ha info om beräknad nederbörd dessa dagar, på dessa platser”. API:et skickar tillbaka ett svar, varpå väderappen tolkar informationen för att sedan presentera den för dig med ett deppigt regnmoln.

Exempel 2. Ett program på datorn snackar med operativsystemet


API:er finns inte bara på www, utan även i din dator. Exempelvis kommunicerar ditt ordbehandlingsprogram (t.ex. Word) med ditt operativsystem (t.ex. Windows) när du vill skriva ut något på din skrivare. Kommunikationen sker då via operativsystemets API.

Word säger ”Hallå Windows, jag vill skriva ut det här receptet på sötpotatissoppa”. Windows säger ”Okok, jag ska snacka med skrivaren” och beordrar sedan skrivaren att printa ut receptet.

API:er gör att program som är bra på en sak får göra just den saken. Windows är bra på att hantera flera program samtidigt och på att snacka med skrivaren. Word kan då koncentrera sig på att göra vad Word gör bäst, till exempel göra konstiga indrag i en text utan att man bett om det.

Vad är öppna API:er?

Om ett program har ett öppet API så kan vem som helst använda sig av det i sina egna program. Som i det första exemplet med väderappen. Och API:er är ju lite som byggstenar, som kan användas tillsammans med varandra. Ju fler byggstenar som finns tillgängliga, desto fler grymma projekt kan byggas. Man kan till exempel tänka sig ett program som använder sig av SMHI:s API och Booli:s API för att visa vilket hus man bör köpa för att få flest soltimmar per år.

Vissa API:er kostar pengar att använda. Du får betala en slant för att få tillgång till en nyckel (API key), som gör att du kan använda API:et. Andra API:er är gratis, men begränsade. Google kan till exempel säga att ”ok, du får använda vår mjukvara för geocoding om du vill, men du får bara göra x antal förfrågningar per dag till det, annars är det dags att PAY UP!”

Andra företag vill kanske bestämma hur API:et ska användas. Systembolagets API får till exempel inte användas ”på ett sätt som innebär att personer under 20 års ålder uppmanas att konsumera alkohol" eller "som uppmanar till bruk eller missbruk av alkohol”.

5 exempel på populära API:er

Exakt hur många API:er det finns där ute vet jag inte. I don't have the technology. Men testa att googla efter några av dina favorittjänster, till exempel "instagram api", så ser du snart att de flesta har ett (mer eller mindre) tillgängligt API. Här är några andra populära API:er, som också är ganska lätta att arbeta med för nybörjare inom programmering.

1. Google Maps
2. YouTube
3. Twitter
4. LinkedIn
5. Pinterest

Bubblare: Jag vet inte hur populärt eller lättanvänt det är, men även NASA har ett öppet API. Om inte DET motiverar en till att vilja lära sig programmera, så vet jag inte vad som gör det.

Sandra Svensson

Sandra är exiljämten från Östersund som numera jazzar runt i Stockholm i copywriterkostym. När hon inte skriver spelar hon skivor i DJ-duon Popteau Twins och lär sig koda. Fokus ligger just nu på Python och Django, för att det är kul och för att kunna skapa fler viktiga webbappar i stil med Djurspanaren.
Github: newsocialsandra