Flödesdiagram som visar klient, API och server med HTTP-metoder och JSON-svar
Så funkar det

Vad är en API – förklarat på svenska utan krångel

API är ett av de mest använda begreppen inom webbutveckling, men det är förvånansvärt dåligt förklarat på svenska. Det beror troligen på att de flesta resurser antingen är för tekniska eller för ytliga — de stannar vid restaurangmetaforen med servitören som tar beställningar, utan att gå vidare till hur det faktiskt ser ut i praktiken.

Här förklarar vi vad en API är, hur den fungerar tekniskt, och varför det är ett av de viktigaste koncepten att förstå som webbutvecklare.

API förklarat — vad det faktiskt innebär

API står för Application Programming Interface. Det är ett gränssnitt som låter två program prata med varandra enligt överenskomna regler. Istället för att en människa klickar sig igenom ett webbgränssnitt kan ett program skicka en strukturerad förfrågan och få ett strukturerat svar tillbaka.

Tänk på det som en kontraktsspecifikation. API:et säger: ”Om du skickar mig den här typen av förfrågan, med de här parametrarna, så ger jag dig tillbaka den här typen av svar.” Det är allt — ett avtal om hur kommunikationen ska se ut.

Det finns API:er överallt. Varje gång en mobilapp hämtar data från en server, varje gång du loggar in med Google på en tredjepartssajt, varje gång en webshop beräknar fraktkostnad via PostNord — det går via ett API.

Hur fungerar ett REST API?

REST (Representational State Transfer) är det vanligaste sättet att bygga webb-API:er. Ett REST API använder HTTP — samma protokoll som din webbläsare — och kommunicerar med standardmetoderna GET, POST, PUT och DELETE.

Här är ett konkret exempel. Säg att du bygger en app som hanterar böcker. Ett REST API för den tjänsten kan se ut så här:

GET    /api/books          → Hämta alla böcker
GET    /api/books/42       → Hämta bok med ID 42
POST   /api/books          → Skapa en ny bok
PUT    /api/books/42       → Uppdatera bok 42
DELETE /api/books/42       → Ta bort bok 42

Varje URL (eller ”endpoint”) representerar en resurs, och HTTP-metoden bestämmer vad du vill göra med den. GET hämtar data, POST skapar ny data, PUT uppdaterar befintlig data och DELETE tar bort.

API-svar i JSON

Data som skickas fram och tillbaka är nästan alltid i JSON-format (JavaScript Object Notation). Det ser ut så här:

{
  "id": 42,
  "title": "Norrlands mörker",
  "author": "Stina Jackson",
  "year": 2018,
  "available": true
}

JSON är textbaserat, lättläst för människor och enkelt att tolka för datorer. Det är därför det blivit standardformatet för API-kommunikation.

API-nycklar och autentisering

De flesta API:er kräver någon form av autentisering — du kan inte bara skicka anrop hur som helst. Det vanligaste mönstret är API-nycklar: en unik sträng som identifierar dig och avgör vad du har tillgång till.

GET /api/books
Authorization: Bearer din-api-nyckel-här

API-nyckeln skickas med i varje anrop som en HTTP-header. Servern kontrollerar nyckeln, verifierar att du har rätt att göra den aktuella förfrågan, och returnerar data om allt stämmer.

Andra autentiseringsmetoder inkluderar OAuth (som används när du loggar in med Google eller GitHub) och JWT-tokens (JSON Web Tokens) som är vanliga i moderna webbapplikationer. Gemensamt för alla är att de löser samma grundproblem: vem är du, och vad får du göra?

Varför API:er är viktiga

API:er är limmet i modern webbutveckling. Utan dem skulle varje tjänst vara en isolerad ö. Några vardagliga exempel:

Betalningar: Stripe, Klarna och Swish exponerar API:er som låter din webbshop hantera betalningar utan att du bygger ett eget betalningssystem. Kartor: Google Maps API och Mapbox låter dig bädda in kartor och beräkna rutter. E-post: SendGrid och Mailgun hanterar e-postutskick via API-anrop. Väderdata: SMHI har ett öppet API där du kan hämta prognoser och mätdata gratis.

I alla dessa fall slipper du bygga funktionaliteten själv. Du gör ett API-anrop, får tillbaka data, och använder den i din applikation. Det är kärnan i varför API:er är så centrala — de låter dig stå på andras axlar.

HTTP-statuskoder — API:ets språk

Varje API-svar innehåller en statuskod som talar om vad som hände. De viktigaste att känna till: 200 OK betyder att allt gick bra. 201 Created bekräftar att en ny resurs skapades (efter POST). 400 Bad Request betyder att din förfrågan var felformaterad. 401 Unauthorized att du saknar eller har felaktig autentisering. 404 Not Found att resursen inte existerar. Och 429 Too Many Requests att du skickat för många anrop — de flesta API:er har rate limiting som begränsar antalet anrop per tidsenhet.

Att hantera dessa koder i din kod är grundläggande — du kan inte anta att varje anrop lyckas.

Testa ett API i praktiken

Det enklaste sättet att förstå hur ett API fungerar är att testa ett. SMHIs öppna API kräver ingen registrering:

GET https://opendata-download-metfcst.smhi.se/api/category/pmp3g/version/2/geotype/point/lon/18.07/lat/59.33/data.json

Den URL:en ger dig en väderprognos för Stockholm i JSON-format. Klistra in den i din webbläsare och du ser rå API-data direkt.

Vill du experimentera mer strukturerat är Postman ett populärt verktyg som låter dig bygga och skicka HTTP-förfrågningar visuellt. Du kan testa olika metoder, lägga till headers och se svaren formaterat. Alternativt fungerar curl i terminalen:

curl -s "https://opendata-download-metfcst.smhi.se/api/category/pmp3g/version/2/geotype/point/lon/18.07/lat/59.33/data.json" | head -c 500

REST vs GraphQL vs WebSocket

REST är standard, men det finns alternativ. GraphQL låter klienten specificera exakt vilken data den vill ha — istället för att servern bestämmer vad varje endpoint returnerar. Det minskar problemet med ”överhämtning” av data men lägger till komplexitet.

WebSockets är en annan teknik som ger tvåvägskommunikation i realtid — servern kan skicka data till klienten utan att klienten frågar. Det används för chattappar, live-uppdateringar och multiplayer-spel.

I de flesta projekt börjar du med REST. Det är enklare, välförstått och har bättre verktyg. GraphQL och WebSockets löser specifika problem som du sannolikt inte har från start.

Sammanfattning

En API är ett gränssnitt som låter program kommunicera med varandra. REST API:er använder HTTP-metoder som GET och POST för att hantera resurser, och JSON för att skicka data. Autentisering sker via API-nycklar, OAuth eller JWT-tokens. API:er är grunden för modern webbutveckling — från betalningar och kartor till väderdata och e-post. Och det bästa sättet att lära sig är att testa: öppna SMHIs API i webbläsaren eller installera Postman och börja skicka anrop.

Kommentera artikeln

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *