Vad är ett API?

2021-06-16

System 1 -> System 2

Introduktion

Ett API är en strukturerad, dokumenterad och säker anslutningspunkt till ett system som är avsedd för andra system. På samma sätt som en människa kommunicerar med ett system via ett grafiskt gränssnitt som har vyer, listor och, knappar så kommunicerar ett system med ett annat via ett API som har anrop och bestämda dataformat. Förkortningen API betyder Application Programming Interface, vilket också visar på släktskapet med UI - User Interface (d.v.s. det grafiska gränssnittet avsett för människor).

Olika sorters API:er

Ordet API används för relativt många olika sorters gränssnitt mellan applikationer, system och plattformar. Bluetooth är en sorts API som beskriver hur mobila enheter ska kommunicera med varandra, ett annat API är det som en dator använder för att kommunicera med sitt grafikkort.

När man pratar om API I dagligt tal och i media menar man dock nästan alltid ett API till en applikation eller ett system som nås via internet. Det är också den sortens API som den här texten handlar om. Ett sådant API kan erbjuda funktioner för att hämta information, men också för att utföra aktiviteter - t.ex. beställa en tjänst eller vara, skicka in en anmälan, ändra uppgifter för en användare eller starta en process av något slag.

Ett API är en del av ett system. Även om det kan upplevas som att ett API är något som ligger mellan olika system så är det en del av något av de system som är ihopkopplade. Den som äger systemet som har API:et äger och kontrollerar alltså också API:et och hur det får användas. Ibland har består en hopkoppling av system av flera API:er där de olika systemen har varsitt API.

Öppna och stängda API:er

Vissa API:er är stängda, vilket innebär att de bara är avsedda för användning av en organisations egna system. Exempel på det är när man har specialbyggt ett API för bara en webbtjänst. Ett sånt API har väldigt specialiserade funktioner som är helt anpassade för att leverera just den information och de anrop som webbtjänsten behöver.

Andra API:er är generella och erbjuder åtkomst till tjänster och datamängder som kan användas av en mängd andra system. Detta brukar kallas för ett öppet API. Att API:et är öppet betyder inte att alla har rätt att använda det eller komma åt all information i det, eller att det måste vara gratis att använda. Ett öppet API kan t.ex. ha en licens där man behöver teckna ett avtal med den som äger API:et och få en nyckel för att kunna anropa det. Ett öppet API betyder inte heller att informationen i det måste vara öppen - ett öppet API kan ha inloggning som gör att den som använder det bara kan hämta information och anropa funktioner som är knutna till en specifik användare.

Definitionen av öppna och stängda API:er är inte entydig, och vissa menar att ett öppet API innebär att det är öppet för alla att använda och enbart innehåller publik information. Det vi menar med öppet API i den här texten är dock ett API som är generellt och som är möjligt att använda utanför API:ets egen organisation, oavsett om det innehåller publik information, kostar pengar, kräver licensnycklar eller inloggning för åtkomst till användarinformation.

Exempel på öppna API:er

API:er kan vara stora och små, sammanslagna eller uppdelade. Här är några exempel på öppna API:er från myndigheter och företag:

  • Skatteverket har en mängd API:er både för att hämta statistik och för att genomföra olika ärenden som att ändra folkbokföringsadress och lämna in skattedeklarationer.

  • Flera kollektivtrafikbolag erbjuder tillsammans API:er via Trafiklab för hållplatser, tidtabeller, realtidsinformation och för att köpa biljetter.

  • Google har mängder av API:er, t.ex. Maps som gör att man kan använda Google Maps i sin egen webbtjänst.

  • Facebook har ett API som bland annat gör att man kan bygga in delning och skapande av inlägg från andra appar.

  • Bolagsverket har ett API för att registrera ändringar i bostadsrättsföreningars styrelser

  • Stripe har ett API för kortbetalningar som man kan använda när man bygger en webbshop.

  • Banker, vissa myndigheter (som centralbanker) och finansiella institut måste, enligt EU-direktivet PSD2, erbjuda API:er för konton, betalningar och transaktioner. Exempel:

Vad kan man göra med ett API?

Med ett API kan man koppla ihop ett system med ett annat. Det kan låta som något tekniskt och inte särskilt relevant för en vanlig användare. Men API:er är grunden för automatisering. Ett sätt att tänka på kraften i API:er är genom tänka på mashups - kombinationer av tjänster som redan finns.

Om Försäkringskassan och din kommuns skolförvaltning hade öppna API:er skulle man kunna bygga en app som samtidigt sjukanmäler ditt barn i skolan och anmäler VAB till Försäkringskassan i ett och samma moment, kanske via telefonens röstassistent. Varken Försäkringskassan eller kommunen skulle behöva leda ett sånt projekt eller ens vara inblandade utöver att godkänna användning av API:erna.

Mindre spektakulära tillämpningar som skulle vara omöjliga utan API:er är t.ex. automatisk avprickning av fakturabetalningar i bokföringsprogram, ehandel med frakt och spårning av paketleveranser, Swish och bokning av resor online. När man skrapar lite på ytan blir det snabbt nästan omöjligt att hitta digitala lösningar som inte använder ett API någonstans.

Varför är API:er viktiga?

API:er är en förutsättning för att bygga digitala plattformar. I moderna organisationer vill man att de olika system och applikationer som man använder ska kopplas samman, både så att informationen kan delas mellan dem och så att man kan skapa mer komplexa digitala processer som kräver att funktioner i olika system anropas i rätt ordning. Om de olika delsystemen inte har API:er blir en sån sammankoppling både svår och instabil. När systemen är sammankopplade på rätt sätt kan du bygga ett eget API till din plattform där dina kunder, leverantörer, användare eller medborgare kan använda dina tjänster via olika appar och webbtjänster.

Samhället kan spara enorma resurser genom att system kan kommunicera med varandra och automatiskt låta data flöda istället för att gå via människor. Med öppna API:er kan dessutom invånare och företag hjälpa till att driva utvecklingen genom att skapa nya tjänster och automatiseringar. Man kan enkelt koppla samman tjänster från det offentliga med tjänster från näringslivet på ett sätt som t.ex. en myndighet skulle ha svårt att göra.

Inom det offentliga har t.ex. Helsingborg kommun och Sundsvall kommun har valt att tillämpa öppna principer på sin utveckling. Deras öppna API:er möjliggör maximering av medborgarnytta till minimal peng. Tyvärr är detta undantag - Sverige ligger sist i OECDs lista över digital mognad inom offentlig förvaltning. Om fler myndigheter och offentliga förvaltningar öppnade sina API:er skulle det snabbt kunna ändras.

Inom delar av näringslivet kan idén om ett API verka hotfullt. Vid första anblick verkar det lättare att behålla sina kunder om man kan se till att de måste använda ens tjänster via ens eget system och gränssnitt. I själva verket kan ett öppet API vara en automatisk säljkanal där andra aktörer kan hitta på nya applikationer som inkluderar dina tjänster utan att du behöver lyfta ett finger. Tack vare att Interflora hade ett API så kunde hitta.se skapa en knapp för att skicka blommor på födelsedagen till en person man sökt fram - Interflora fick nya beställningar, hitta.se en kickback på varje försäljning och användaren behövde inte fylla i adressen på beställningen.

I takt med kundernas digitaliseringsmognad så ökar också förväntningarna på att alla system ska kunna fungera som byggblock i en organisations digitala plattform. System utan ett API kan inte spela den rollen. Utan ett API kan plötsligt den som ville låsa in sina kunder istället själv bli utelåst, men med ett API kan man bli en ovärderlig kugge i de större hjul som utgörs av kundernas digitala plattformar.

Illustrerande bild på apier

Licens: CC-BY

mobprogrammering team flow Iteam

2021-10-22

Riktig innovation kräver team flow

Hur kan ett utvecklingsteam bli ett hockeylag. Lösningen stavas Team Flow. Men hur gör vi för att uppnå detta?

Nya kollegor

2021-08-05

Hållbar digitalisering attraherar både kompetens och kunder

Hållbarhet och digital innovation sitter lika naturligt ihop som Batman och Robin

Tak

2021-06-18

Hur kan bostadspriserna förändras efter pandemin?

Location, location, location. Vad har Strindbergs hiss med huspriser att göra?

API

2021-06-16

Vad är ett API?

De flesta vet vad BNP är men få vet vad ett API är. Båda är komplicerade frågor som hjälper att känna till om man ska förstå hur samhället utvecklas.

Bild med text "Public money, public code"

2021-06-10

Vad är öppen källkod och varför ska du bry dig?

Öppen källkod är mycket mer än bara gratis programvara. Det är en filosofi som rimmar väl med demokratins värderingar.

Kontor

2021-06-09

Vi sa upp vårt kontor i pandemin. Dags att tänka nytt

Vi kombinerar det bästa från hemarbetet med en ny form av lokal

Christian Landgren i Logistikpodden

2021-06-03

Logistikpodden om Predictive Movement

Hur kommer framtidens transportsystem fungera? Kan AI hjälpa miljön?

En person som jobbar vid en dator

2021-05-18

Predictive Movement testas i Pajala

Predictive Movement är en samverkansplattform för att optimera transportsystemet. Denna veckan testar vi i Pajala.

Fyra personer i ett möte

2021-05-10

Jämställdhet på Iteam

2021 är Iteam ett techbolag med lika många kvinnor som män. Det tål att uppmärksammas!

Christian Landgren

2021-03-10

Tre snabba om #jobtech med Christian Landgren

Hur påverkar öppen källkod och öppen data arbetsmarknaden framöver?

Två utvecklare som samarbetar vid en dator.

2020-10-01

DX - upplevelsen som inte får glömmas

Developer Experience - hur skapar man lösningar som utvecklare ❤️ älskar?

Drönare

2020-09-03

Drönare för medicinleveranser

Hur skulle samhället förändras om vi kunde få drönarleveranser till varje stuga?