Mjukvaruutveckling

Vad är ett API? REST API enkelt förklarat

Vi förklarar med servitörsliknelsen och REST-exempel hur ett API får två program att prata med varandra, och förenklar begreppen endpoint, metod och säkerhet.

Aurora YazılımRedaktionen 6 min läsning
Vad är ett API? REST API enkelt förklarat
Vad är ett API?

Ett API (Application Programming Interface, applikationsprogrammeringsgränssnitt) är ett gränssnitt som gör att två program kan utbyta data med varandra enligt bestämda regler. Ett program ställer en fråga på ett definierat sätt och det andra returnerar svaret, också på ett definierat sätt. Det är tack vare API:er som en e-handelswebbplats får ett spårningsnummer från fraktbolaget eller skickar lagersaldo till en marknadsplats.

Vad är ett API? Servitörsliknelsen

Det vanligaste sättet att förklara vad ett API är är liknelsen med en restaurang. Du är gästen, och köket är systemet som håller datan. Du kan inte gå in i köket själv. Du tittar på menyn och ger beställningen till servitören. Servitören för beställningen till köket och kommer tillbaka med maten när den är klar. I det här scenariot är servitören API:et.

Menyn är också API:ets dokumentation: den talar om vad du kan be om, hur du ber om det och vad du får tillbaka. Du kan inte be om något som inte står på menyn, och du behöver inte veta hur köket fungerar.

I mjukvaruvärlden gör den här ordningen det mycket enklare. En e-handelswebbplats behöver inte känna till fraktbolagets interna system. Den säger till fraktbolagets API ”skapa en etikett för den här försändelsen” och får svar. Båda sidor kan ändra sin interna struktur, så länge API-avtalet hålls.

Vad används ett API till?

Svaret på frågan vad ett API används till finns i nästan alla digitala tjänster du använder varje dag. Att välja en plats på kartan på en webbplats, betala med kort, logga in med Google eller se vädret är i bakgrunden ett API-anrop.

  • Kopplar ihop system: webbplats, marknadsplats, frakt, bokföring och betalsystem arbetar i ett enda flöde.
  • Minskar manuell datainmatning: order-, lager- och fakturauppgifter förs från ett system till ett annat av sig själva.
  • Matar mobilappar: appen i telefonen hämtar data inte direkt från databasen utan från API:et.
  • Gör det möjligt att använda färdiga tjänster: du behöver inte bygga betalning, karta, SMS eller e-post från grunden.
  • Ger säker åtkomst: till den externa parten öppnas inte hela databasen utan bara de åtgärder som är tillåtna.

Vad är ett REST API?

API:er kan utformas i olika stilar, och den vanligaste på webben är REST. Det korta svaret på frågan vad ett REST API är: en API-stil som använder HTTP-protokollet, identifierar varje data med en adress (resurs) och utför åtgärder på de resurserna med standardmetoder.

I REST är allt en resurs: produkter, beställningar, kunder. Varje resurs har en adress, och vilken HTTP-metod du använder mot den adressen avgör vad du vill göra. Svaren kommer oftast i formatet JSON, ett textformat som både går att läsa för människor och är lätt för program att bearbeta.

HTTP-metodBetydelseExempel
GETLäs dataGET /api/urunler → produktlista
POSTSkapa en ny postPOST /api/siparisler → ny beställning
PUT / PATCHUppdatera postenPATCH /api/urunler/42 → uppdatera lager
DELETERadera postenDELETE /api/sepet/7 → ta bort från varukorgen

Vad är en endpoint?

En endpoint (ändpunkt) är adressen i ett API där en viss åtgärd utförs. Till exempel är /api/urunler ändpunkten för produktlistan och /api/urunler/42 ändpunkten för produkt nummer 42. En API-dokumentation är i grunden en lista över de här ändpunkterna, vilka metoder de anropas med och vad de returnerar.

Statuskoder

Med varje svar kommer en HTTP-statuskod som sammanfattar resultatet av åtgärden. 200 betyder lyckad, 201 post skapad, 400 felaktig begäran, 401 ej autentiserad, 403 saknar behörighet, 404 hittades inte, 429 för många begäranden och 500 serverfel. En bra integration hanterar varje kod för sig.

Hur ser en API-begäran ut?

En API-begäran består i grunden av fyra delar: adress, metod, rubriker (autentiseringsuppgifter, datatyp) och vid behov en kropp (data som skickas). Nedan syns en enkel läsbegäran till ett öppet test-API och ett typiskt JSON-svar.

Den här begäran kan skickas från terminalen med curl, från webbläsaren med JavaScript eller på servern med Python eller Node.js. Reglerna är desamma, och det är bara verktyget som skiljer sig.

bashGET-begäran med curl
curl -s https://jsonplaceholder.typicode.com/posts/1 \
  -H "Accept: application/json"
jsonExempelsvar
{
  "userId": 1,
  "id": 1,
  "title": "...",
  "body": "..."
}
javascriptSamma begäran med JavaScript
const yanit = await fetch("https://jsonplaceholder.typicode.com/posts/1");
if (!yanit.ok) throw new Error(`Hata: ${yanit.status}`);
const veri = await yanit.json();
console.log(veri.title);

API-säkerhet och autentisering

Utom när det gäller öppna test-API:er kan du inte komma åt ett riktigt API utan att bevisa vem du är. De vanligaste metoderna är API-nyckel, kortlivade åtkomsttoken och behörighetsflöden som OAuth.

Säkerhet handlar inte bara om autentisering. Ett väl utformat API ger varje användare bara den behörighet som behövs, validerar inkommande data och begränsar antalet begäranden (rate limit) för att förhindra missbruk.

  • Lägg aldrig API-nycklar i kod som skickas till webbläsaren eller i ett öppet arkiv.
  • Upprätta alltid anslutningen via HTTPS.
  • Lagra nycklarna i miljövariabler och förnya dem med jämna mellanrum.
  • Be bara om de behörigheter som behövs. Ta inte skrivbehörighet om läsbehörighet räcker.
  • Läck inte interna systemdetaljer i felsvar.

Exempel på API-integration

API-integration innebär att två eller flera system kopplas ihop via API:er så att de utbyter data regelbundet och automatiskt. I en e-handelsverksamhets dagliga flöde finns nästan alla de här kopplingarna.

När en beställning kommer in uppdateras lagret i alla kanaler där produkten säljs, och det sker med marknadsplatsintegration. När beställningen bekräftas hämtas etikett och spårningsnummer från fraktbolaget, ett steg som ingår i fraktintegration. Fakturan skapas i sin tur av sig själv med E-faktura-integration (det turkiska e-fakturasystemet) och skickas till kunden.

I alla de här kopplingarna är det svåra inte att göra det första anropet. Svaren på frågor som vad som händer när motparten inte svarar, hur man förhindrar att samma beställning behandlas två gånger och vem som ska underrättas vid fel avgör skillnaden mellan en stabil integration och en bräcklig koppling.

API eller webhook?

I ett API frågar du och motparten svarar. Med en webhook är det i stället motparten som själv meddelar dig när en händelse inträffar. I stället för att hela tiden fråga ”finns det någon ny beställning” är det oftast mer effektivt att få en avisering när beställningen kommer. Detaljerna finns i vårt inlägg om vad en webhook är.

Hur börjar man utveckla API:er?

För att lära dig använda API:er är en bra början att välja ett öppet test-API och skicka begäranden med curl eller ett API-testverktyg. Att läsa svaren, tolka statuskoder och prova felfall får begreppen att sätta sig snabbt.

Vill du skriva ditt eget API behöver du välja ett backend-språk. För en snabb och läsbar start kan du titta på FastAPI-exemplet i inlägget vad Python är, och vill du gå vidare med JavaScript finns Express-exemplet i inlägget vad Node.js är.

Ett bra API har i alla fall tre gemensamma egenskaper: tydlig och aktuell dokumentation, konsekvent namngivning och förutsägbara felsvar. Om en utvecklare som ska använda ett API kan läsa dokumentationen och göra sin första begäran på några minuter är designen på rätt väg.

Vanliga frågor

01Är ett API och en webbtjänst samma sak?

En webbtjänst är en sorts API som nås över ett nätverk. Varje webbtjänst är ett API, men inte alla API:er fungerar över ett nätverk. Funktionerna som ett operativsystem eller ett bibliotek erbjuder programmeraren kallas också API.

02Vad är skillnaden mellan REST och SOAP?

SOAP är ett äldre XML-baserat protokoll med strikta regler som fortfarande används i vissa företags- och myndighetssystem. REST är ett lättare angreppssätt som oftast använder JSON och passar webben mer naturligt.

03Kostar det att använda API:er?

Det beror på. Vissa API:er är gratis, andra är gratis upp till ett visst antal begäranden och kostar sedan, och andra är bara öppna för kunder med avtal. Användningsvillkor och gränser står i varje leverantörs dokumentation.

04Vad är GraphQL, och ersätter det REST?

GraphQL är ett API-frågespråk där klienten i en enda fråga anger exakt vilka fält den vill ha. Det ger fördelar i komplexa appar med många vyer, men är snarare ett alternativ som används tillsammans med REST än något som ersätter det.

API är mjukvarans gemensamma språk, och när det är rätt uppsatt flödar order-, lager-, frakt- och fakturauppgifter mellan systemen utan manuell hantering. Vill du koppla ihop de system din verksamhet använder kan du titta på vår integrationstjänst, och för skräddarsydda tjänster och paneler kan du läsa om våra mjukvarulösningar.