Vad är ett API? En enkel guide för appbyggare
Ett API (application programming interface) är ett definierat sätt för en programvara att be en annan om data eller att få den att göra något. Din app skickar en begäran i ett överenskommet format – "ge mig morgondagens bokningar", "debitera det här kortet 200 kronor", "sammanfatta den här texten" – och det andra systemet skickar tillbaka ett strukturerat svar. API:er är hur delarna i en app pratar med varandra, och hur din app använder externa tjänster som betalningar, e-post, kartor och AI.
Varför API:er spelar roll när du bygger med AI
Nästan varje användbar app består av delar som kommunicerar via API:er:
- Inuti din app anropar skärmarna i webbläsaren din egna backends API för att läsa och spara data.
- Utanför din app anropar din backend andra företags API:er: Stripe för att ta betalningar, en e-postleverantör för att skicka kvitton, en leverantör av AI-modeller för att generera text.
När du ber en AI-byggare att "ta emot betalningar" eller "lägg till en AI-sammanfattning" är det egentligen kod som anropar ett API den skriver. Att kunna grunderna hjälper dig att förstå vad AI:n behöver av dig (vanligtvis ett konto hos den tjänsten och en API-nyckel), var saker kan gå fel och vad de kommer att kosta.
En vardaglig jämförelse
Tänk på en restaurang. Du går inte in i köket och lagar mat. Du läser menyn, säger till servitören vad du vill ha på ett sätt som köket förstår, och servitören kommer tillbaka med din mat – eller säger att rätten är slut.
- Menyn är API-dokumentationen: en lista över vad du kan be om och hur.
- Servitören är API:et: det ena överenskomna sättet för förfrågningar att komma in och svar att komma ut.
- Köket är det andra systemet: du behöver inte veta hur det fungerar inuti.
- Din beställning är förfrågan; tallriken är svaret.
Köket kan byta ugnar och personal utan att påverka dig, så länge menyn är densamma. Det är det verkliga värdet med ett API: det låter två system arbeta ihop utan att något av dem behöver veta hur det andra är byggt.
Hur en webb-API-förfrågan fungerar
De flesta API:er du möter är webb-API:er som fungerar över HTTP, samma protokoll som din webbläsare använder. Varje förfrågan har några delar:
| Del | Vad det är | Exempel |
|---|---|---|
| Metod | Vilken typ av åtgärd | GET (läs), POST (skapa) |
| URL / slutpunkt | Adressen till det du agerar på | https://api.example.com/bookings |
| Headers | Extra information, inklusive vem du är | Authorization: Bearer <din nyckel> |
| Body | Datan du skickar, för skapande och uppdateringar | {"name": "Lena", "time": "14:00"} |
Och varje svar har:
| Del | Vad det är | Exempel |
|---|---|---|
| Statuskod | Ett tal som säger hur det gick | 200 OK, 201 Created, 404 Not Found |
| Body | Datan som returneras, oftast som JSON | {"id": 5001, "status": "confirmed"} |
JSON (JavaScript Object Notation) är ett enkelt textformat med namn och värden inom klammerparenteser. Det är standardsättet för webb-API:er att utbyta data.
REST: den vanligaste stilen
REST är en allmänt använd konvention för att utforma webb-API:er. Varje typ av sak får sin egen URL, och standardmetoder säger vad du gör med den. Så här kan ett REST-API för en bokningsapp se ut:
| Metod | Slutpunkt | Vad den gör |
|---|---|---|
GET | /api/bookings | Lista bokningar |
GET | /api/bookings/5001 | Hämta en bokning |
POST | /api/bookings | Skapa en ny bokning |
PATCH | /api/bookings/5001 | Ändra en del av en bokning, till exempel tiden |
DELETE | /api/bookings/5001 | Avboka (ta bort) en bokning |
PUT finns också och ersätter konventionellt en hel post, medan PATCH bara ändrar de fält du skickar.
Statuskoder du oftast ser:
| Kod | Betydelse |
|---|---|
200 / 201 | Lyckades / skapad |
400 | Felaktig förfrågan – något i det du skickade var fel eller saknades |
401 | Inte autentiserad – ingen giltig inloggning eller nyckel |
403 | Förbjuden – du är känd, men får inte göra detta |
404 | Hittades inte |
429 | För många förfrågningar – du har nått en hastighetsgräns |
500 | Servern hade ett fel |
När din app går sönder är statuskoden ofta den snabbaste ledtråden. Ett 401 från en betalningsleverantör betyder oftast att API-nyckeln saknas eller är fel; ett 429 betyder att du anropar för ofta.
REST är inte den enda stilen – GraphQL och RPC-liknande API:er finns också – men REST är vad de flesta tjänster och AI-byggda backends använder.
Ett praktiskt exempel: en bokningsbekräftelse
När en kund bokar en klippning i en frisörsalongsapp kan flera API-anrop ske på en eller två sekunder:
- Bokningssidan i webbläsaren skickar
POST /api/bookingsmed tjänst, tid och kunduppgifter till din backend. - Din backend kontrollerar att tiden är ledig, sparar bokningen i databasen och returnerar
201 Created. - Din backend anropar en e-postleverantörs API med sin hemliga nyckel: "skicka den här bekräftelsen till lena@example.com."
- Om det finns en handpenning ber din backend betalningsleverantörens API att skapa en utcheckningssession och skickar kunden dit.
- Senare anropar betalningsleverantören din app för att säga att betalningen lyckades. Det omvända anropet är en webhook.
De första två stegen är ditt eget API mellan frontend och backend. Stegen 3–5 är tredjepartsAPI:er.
Vanliga termer förklarade
| Term | Betydelse |
|---|---|
| Slutpunkt (endpoint) | En specifik URL som ett API svarar på. |
| API-nyckel | En hemlig sträng som identifierar din app för en tjänst. Behandla den som ett lösenord. |
| Autentisering | Att bevisa vem som anropar – med en nyckel, en token eller en inloggning. Se vad autentisering är. |
| Hastighetsgräns (rate limit) | Ett tak för hur många förfrågningar du kan göra under en period. |
| SDK | Ett färdigt kodbibliotek som gör det enklare att anropa ett visst API. |
| Dokumentation | "Menyn": vilka slutpunkter som finns, vad de tar emot och returnerar. |
| Sandlåda / testläge | En version av en tjänst för att testa utan riktiga pengar eller riktig data. |
| Webhook | Ett anrop från en annan tjänst till din app när något händer. |
Vanliga misstag och missuppfattningar
- Att lägga hemliga nycklar i frontend. Allt i kod som körs i webbläsaren kan ses av vem som helst som besöker sidan. Hemliga nycklar måste stanna på servern, i miljövariabler eller hemligheter.
- Att klistra in nycklar i chatten. Chatthistoriken kan lagras. Använd din byggares hemlighetsfunktion i stället, och rotera alla nycklar du exponerat.
- Att anta att ett API är gratis. Många API:er tar betalt per förfrågan eller per användning – AI-modellers API:er tar betalt per token. Kontrollera priser och sätt spenderingsgränser. Se hur du använder LLM-API:er.
- Att inte hantera fel. Externa tjänster går ner, får timeouts och når gränser. Be om vettiga felmeddelanden och återförsök.
- Att lita på webbläsaren. Ditt eget API måste själv kontrollera behörigheter. Att gömma en knapp stoppar inte någon från att anropa slutpunkten direkt.
- Att använda live-nycklar under testning. Använd testlägesnycklar tills du är redo att lansera.
Vad du ska be din AI-byggare om
- "Vilka externa API:er använder den här appen, och vad kostar vart och ett?"
- "Anropa betalnings-API:et bara från servern. Läs nyckeln från en miljövariabel."
- "Lista varje slutpunkt i vårt API, vad den gör och vem som får anropa den."
- "Kontrollera på servern att den inloggade användaren äger bokningen innan den uppdateras eller tas bort."
- "Om e-post-API:et misslyckas, spara bokningen ändå och logga felet."
- "Använd leverantörens testläge för tillfället."
API:er i Mythex
Mythex kan bygga ditt eget API – som en del av en webbapp, eller som en separat backend i Node, Python (FastAPI), C# eller Java som körs tillsammans med din frontend – och skriva koden som anropar externa tjänster. Du lägger till deras nycklar som projekthemligheter snarare än i chatten, och de är tillgängliga för din app i förhandsvisningen och när den är publicerad. Docs har recept för att integrera vilket API som helst och att bygga en REST-API-backend.
Frågor
Vad är ett API med enkla ord?
Ett API (application programming interface) är ett definierat sätt för en programvara att be en annan om data eller att få den att göra något. Din app skickar en begäran i ett överenskommet format, och det andra systemet skickar tillbaka ett svar – till exempel väderdata, ett betalningsresultat eller ett AI-genererat svar.
Vad är ett REST-API?
Ett REST-API är en vanlig stil för webb-API:er där varje typ av sak (bokningar, kunder) har en URL, och du använder standardmetoder i HTTP – GET för att läsa, POST för att skapa, PUT eller PATCH för att uppdatera och DELETE för att ta bort. Data kommer oftast tillbaka som JSON.
Vad är en API-nyckel och var ska jag förvara den?
En API-nyckel är en hemlig sträng som identifierar din app för en tjänst och ofta låter den spendera pengar eller komma åt data. Förvara den i miljövariabler eller din projekts hemligheter på servern, aldrig i kod som körs i webbläsaren och aldrig i ett publikt repository.
Vad är skillnaden mellan ett API och en webhook?
Med ett API frågar din app en annan tjänst efter något när den vill. Med en webhook anropar den andra tjänsten din app när något händer – till exempel att en betalningsleverantör meddelar dig att en betalning lyckades.