Vad är ett API?

Förklarat på ett sätt så att alla förstår.

Kristoffer Yi FredrikssonDigital strateg31 maj, 2022

Ett API är vad som gör det möjligt för olika program och digitala tjänster att interagera med varandra. Herregudars så trist det låter. Och det är synd, för api är något väldigt viktigt.

En liknelse:

För några veckor sedan plingade det till på displayen på min bil. “Service now” stod det. Jag kan inget om att serva bilar, så jag ringde en verkstad och frågade om de kunde göra det åt mig. Efter att ha berättat mitt registreringsnummer gick samtalet nått sånt här:

– Funkar 10 juni?
– Jadå.
– Behöver du lånebil?
– Jo tack.
– Jag ser att det börjar bli dags att besiktiga.
– Redan gjort, inga anmärkningar.
– Bra, vi ses den 10:e.
– Tack hej.

Låt oss säga att min bil var en framtida Smart Bil som kunde boka tid på en verkstad på egen hand via till exempel en on-line bokning som verkstaden hade. Då hade samtalet här ovan sköts av två program, som båda hade haft var sitt api. I detta exemplet blir jag som ett api för min bil, och personen på verkstaden blir som ett api för verkstaden.

I ett api finns det en uppsättning anrop(frågor) en utvecklare kan göra, och oftast skickar man med ett antal parametrar (fakta).

Först gör jag ett anrop i stil med “jag vill serva min bil” och skickar med parametern registreringsnummer. Det anropet får ett svar, oftast med parametrar, i detta fallet “Ja, det går bra” och parametern föreslaget datum.

Inte nog med det, apiet “bilverkstaden” använder parametern registreringsnummer för att göra ett anrop till ett annat api för att kolla om det var dags att besiktiga bilen, och fick svaret “Ja, läge för besiktning”. Sen använde bilverkstads apiet det svaret för att göra ett anrop till mig, och fråga om jag redan besiktigat min bil.

Jag vet av erfarenhet att om det var så att något från besiktningen behövde fixas för att sedan ombesiktigas, så hade verkstaden tagit hand om det, helt utan min inblandning.

Och så funkar apier. Diverse system kan anropa varandra, och i sin tur göra nya anrop till andra apier, ända tills allt är klart.

Ett api är kort och gott en samling frågor som kan ställas till ett program, eller en tjänst. Har api bra dokumentation så kan en utvecklare läsa sig till vilka frågor som kan ställas, och vilka parametrar som ska skickas med, samt vilka parametrar man kan få som svar.

Men, bara för att det finns ett api så betyder inte det att olika applikationer automatiskt kan använda det. Precis som jag inte kan läsa vilken bok som helst på franska bara för att det finns franska lexikon, så måste ett program eller tjänst programmeras så att det utnyttjar andra apier.

På 24HR har vi gått från mobile first, att mobilen stod i centrum, till api first, att apiet står i centrum. Det innebär att vi utvecklar nya tjänster med utgångspunkt i det nya apiet den tjänsten ska ha. De olika användargränssnitten vi utvecklar (oftast ett publikt plus ett för administratörer, ibland betydligt fler än så) kopplar sig sedan mot apiet oavsett om de är mobiler, datorer, smartklockor eller helt andra apier från andra tjänster.

Så, nu kan du tillräckligt om apier för att läsa denna bloggposten om vilka krav Jeff Bezos ställer, och nicka instämmande.