Vad betyder API egentligen?

Akronymen API används flitigt i vår bransch. Vad betyder det när ett system har ett API och varför är det så viktigt?

Alla som jobbar med digitala produkter snubblar förr eller senare över uttrycket API. Akronymen används väldigt flitigt i vår bransch men det är långtifrån alla som vet vad som menas med detta.

Vad står API för?

Så låt oss börja med vad API står för: Application Programming Interface. Är vi klokare nu? Inte riktigt.

Låt oss börja med en mjukvara som har utvecklats för att utföra ett visst jobb. Det kan vara att styra temperaturen i ett kylskåp eller flyga ett rymdskepp till månen. Mjukvaran består av ett gäng instruktioner som utför jobbet.
Är det tänkt att människor ska använda mjukvaran så finns det knappar och displayer som ändrar kylskåpsklimat eller spakar och rattar som styr rymdskeppet.

Hur blir det då om vi vill att mjukvaran styrs av en annan mjukvara? Då måste vi ha andra gränssnitt än spakar och knappar. I detta fall behövs det ett API. Ett API är alltså ett gränssnitt för andra applikationer, därav namnet Application Programming Interface.

Exempel på ett API

Vi har varken byggt kylskåp eller rymdskepp på Future Memories men vi använder APIer dagligen. Tänk dig att Electrolux hör av sig till oss och vill att vi hjälper till med att visa viktiga meddelanden till allmänheten i kylskåpsdisplayer.
Då skriver vi en egen programvara som hämtar denna data från krisinformation.se. Som tur är har de ett öppet API där vem som helst kan hämta aktuella VMAer eller annan viktig information för allmänheten.

Om du klickar på http://api.krisinformation.se/v3/notices så har du faktiskt gjort ett API-anrop och har hämtat senaste notiser. Visst är det lite svårt att läsa för en människa men det är ganska lätt att skriva ett program som läser in denna texten och visar den på ett tilltalande sätt i en kylskåpsdisplay.

Öppna data

Internetstiftelsen definierar öppna data så här:

Öppna data är data som vem som helst kan använda fritt, och det är nyckeln till utvecklingen av många smarta och nyttiga samhällstjänster. Allt från effektiviseringar inom sjukvården till praktisk information om kollektivtrafik och skolmatsedeln bygger på öppna data.

Öppna data bygger på öppna APIer. Vi på Future Memories är förespråkare för öppna data och utvecklar våra lösningar med öppna APIer. Detta möjliggör att andra system kan lätt integreras med våra system och att data kan flöda mellan systemen så att de kan nyttjas och visas i rätt sammanhang.

Tyvärr finns det många traditionella systemleverantörer som har byggt lösningar utan APIer och därmed medveten låser in sin data. Oftast ligger det en förlegad affärsmodell till grunden där systemleverantören tar bra betalt för att ta fram data i form av CSV eller Excel exporter. Som tur är så finns det många nya produktbolag som bygger öppna tjänster där data kan konsumeras och skickas in via APIer.

Dokumentera APIer med OpenAPI aka Swagger

Hur vet man dock som systemutvecklare vilka kommandon man kan skicka in till en annan mjukvara? Som tur finns det nästan alltid en manual till varje API, en så kallad API-specifikation. Denna manualen beskriver vilka anrop som kan göras, vilken data som kan skickas in och hur formatet på svaren från APIet kommer se ut.

Under de senaste åren har OpenAPI specifikationen blivit en de-facto standard för hur utvecklare dokumenterar sina APIer och även vi dokumenterar våra APIer med OpenAPI. OpenAPI har sitt ursprung i ett ramverk med namnet Swagger vilket blev OpenAPI under 2016.

Vad är då ett REST API?

I samband med mjukvaruprojekt använder utvecklare gärna termen REST API. REST står för REpresentational State Transfer och är en konvention om hur ett API är uppbyggt. Ett REST API ska ungefär fungera som en vanlig websida: informationen ska nås via länkar. Tittar man på ett dokument så ska man kunna gå vidare till relaterade objekt likt att navigera från en webbsida till en annan.

Stora skillnaden är att formatet på 'sidorna' ser annorlunda ut. Istället för en webbsida returnerar ett REST API dokument i maskinläsbara format. XML och framförallt JSON är två vanliga format som används väldigt mycket som format.

Varför är det så viktigt med API:er?

Oavsett om det är en liten app eller ett stort affärssystem så ligger är det vanligt att data lagras i olika system: En kunddatabas här, ett CMS där, analyticsdata på ett tredje ställe, osv. API:er möjliggör att vi kan hämta ut, korsa och förädla data. Ett system där det inte går att få ut data brukar vi kalla datafängelse.

Se alltså till att ditt systemlandskap består av system som erbjuder API:er istället för att låsa in sin data. Låt data flyta fritt i er organisation!

Gillar du vad du ser?

Bli uppringd

(Vanligtvis inom en timma)