Hva er et API? En enkel guide for app-byggere
Et API (application programming interface) er en definert måte for ett stykke programvare å be et annet om data, eller å få det til å gjøre noe. Appen din sender en forespørsel i et avtalt format — «gi meg morgendagens bookinger», «belast dette kortet med 20 €», «oppsummer denne teksten» — og det andre systemet sender tilbake et strukturert svar. API-er er slik delene av en app snakker sammen, og slik appen din bruker eksterne tjenester som betalinger, e-post, kart og AI.
Hvorfor API-er betyr noe når du bygger med AI
Nesten alle nyttige apper består av deler som kommuniserer gjennom API-er:
- Inne i appen din kaller skjermbildene i nettleseren backendens eget API for å laste og lagre data.
- Utenfor appen din kaller backenden din andre selskapers API-er: Stripe for å ta betalinger, en e-postleverandør for å sende kvitteringer, en leverandør av AI-modeller for å generere tekst.
Når du ber en AI-bygger om å «ta betalinger» eller «legge til et AI-sammendrag», er det det den egentlig gjør: skriver kode som kaller et API. Å kjenne det grunnleggende hjelper deg å forstå hva AI-en trenger fra deg (vanligvis en konto hos den tjenesten og en API-nøkkel), hvor ting kan gå galt, og hva de vil koste.
En hverdagslig sammenligning
Tenk på en restaurant. Du går ikke inn på kjøkkenet og lager mat. Du leser menyen, forteller servitøren hva du vil ha på en måte kjøkkenet forstår, og servitøren bringer maten tilbake — eller forteller deg at retten er utsolgt.
- Menyen er API-dokumentasjonen: en liste over hva du kan be om, og hvordan.
- Servitøren er API-et: den ene avtalte måten forespørsler kommer inn og svar kommer ut på.
- Kjøkkenet er det andre systemet: du trenger ikke vite hvordan det fungerer inni.
- Bestillingen din er forespørselen; tallerkenen er svaret.
Kjøkkenet kan bytte ovner og personale uten å påvirke deg, så lenge menyen er den samme. Det er den egentlige verdien av et API: det lar to systemer fungere sammen uten at noen av dem trenger å vite hvordan den andre er bygget.
Slik fungerer en web-API-forespørsel
De fleste API-ene du møter er web-API-er som fungerer over HTTP, den samme protokollen nettleseren din bruker. Hver forespørsel har noen få deler:
| Del | Hva det er | Eksempel |
|---|---|---|
| Metode | Typen handling | GET (les), POST (opprett) |
| URL / endepunkt | Adressen til tingen du handler om | https://api.example.com/bookings |
| Headere | Ekstra informasjon, inkludert hvem du er | Authorization: Bearer <din nøkkel> |
| Kropp | Dataene du sender, for opprettinger og oppdateringer | {"name": "Lena", "time": "14:00"} |
Og hvert svar har:
| Del | Hva det er | Eksempel |
|---|---|---|
| Statuskode | Et tall som sier hvordan det gikk | 200 OK, 201 Created, 404 Not Found |
| Kropp | Dataene som returneres, vanligvis som JSON | {"id": 5001, "status": "confirmed"} |
JSON (JavaScript Object Notation) er et enkelt tekstformat med navn og verdier i krøllparenteser. Det er standardmåten web-API-er utveksler data på.
REST: den vanligste stilen
REST er en mye brukt konvensjon for å designe web-API-er. Hver type ting får sin egen URL, og standardmetoder sier hva du gjør med den. Her er hvordan et REST-API for en bookingapp kan se ut:
| Metode | Endepunkt | Hva det gjør |
|---|---|---|
GET | /api/bookings | Lister bookinger |
GET | /api/bookings/5001 | Henter én booking |
POST | /api/bookings | Oppretter en ny booking |
PATCH | /api/bookings/5001 | Endrer deler av en booking, for eksempel tidspunktet |
DELETE | /api/bookings/5001 | Avbestiller (sletter) en booking |
PUT finnes også og erstatter etter konvensjon en hel post, mens PATCH bare endrer feltene du sender.
Statuskodene du oftest vil se:
| Kode | Betydning |
|---|---|
200 / 201 | Suksess / opprettet |
400 | Ugyldig forespørsel — noe i det du sendte var feil eller manglet |
401 | Ikke autentisert — ingen gyldig innlogging eller nøkkel |
403 | Forbudt — du er kjent, men har ikke lov til å gjøre dette |
404 | Ikke funnet |
429 | For mange forespørsler — du har nådd en grense for antall kall |
500 | Serveren hadde en feil |
Når appen din slutter å fungere, er statuskoden ofte det raskeste spornet. En 401 fra en betalingsleverandør betyr vanligvis at en API-nøkkel mangler eller er feil; en 429 betyr at du kaller for ofte.
REST er ikke den eneste stilen — GraphQL og RPC-lignende API-er finnes også — men REST er det de fleste tjenester og AI-bygde backender bruker.
Et eksempel: en bookingbekreftelse
Når en kunde booker en klipp i en frisørapp, kan flere API-kall skje i løpet av et sekund eller to:
- Bookingsiden i nettleseren sender
POST /api/bookingsmed tjenesten, tidspunktet og kundens detaljer til backenden din. - Backenden din sjekker at tidsrommet er ledig, lagrer bookingen i databasen, og returnerer
201 Created. - Backenden din kaller en e-postleverandørs API med sin hemmelige nøkkel: «send denne bekreftelsen til lena@example.com».
- Hvis det er et depositum, ber backenden din betalingsleverandørens API om å opprette en utsjekkingsøkt, og sender kunden dit.
- Senere kaller betalingsleverandøren din app for å si at betalingen gikk gjennom. Dette omvendte kallet er en webhook.
De to første stegene er ditt eget API mellom frontend og backend. Stegene 3–5 er tredjeparts-API-er.
Vanlige begreper forklart
| Begrep | Betydning |
|---|---|
| Endepunkt | En bestemt URL som et API svarer på. |
| API-nøkkel | En hemmelig streng som identifiserer appen din overfor en tjeneste. Behandle den som et passord. |
| Autentisering | Å bevise hvem som kaller — med en nøkkel, et token eller en innlogging. Se hva autentisering er. |
| Hastighetsgrense | En grense for hvor mange forespørsler du kan gjøre i en periode. |
| SDK | Et ferdig kodebibliotek som gjør det enklere å kalle et bestemt API. |
| Dokumentasjon | «Menyen»: hvilke endepunkter som finnes, og hva de tar imot og returnerer. |
| Sandkasse / testmodus | En versjon av en tjeneste for testing uten ekte penger eller ekte data. |
| Webhook | Et kall fra en annen tjeneste inn i appen din når noe skjer. |
Vanlige feil og misforståelser
- Å legge hemmelige nøkler i frontend. Alt i kode som kjører i nettleseren kan ses av hvem som helst som besøker siden. Hemmelige nøkler må forbli på serveren, i miljøvariabler eller hemmeligheter.
- Å lime nøkler inn i chatten. Chatthistorikken kan bli lagret. Bruk heller byggerens funksjon for hemmeligheter, og roter (bytt ut) alle nøkler du har eksponert.
- Å anta at et API er gratis. Mange API-er tar betalt per forespørsel eller per bruksenhet — AI-modell-API-er tar betalt per token. Sjekk prisene og sett forbruksgrenser. Se hvordan du bruker LLM-API-er.
- Å ikke håndtere feil. Eksterne tjenester går ned, får tidsavbrudd og treffer grenser. Be om fornuftige feilmeldinger og nye forsøk.
- Å stole på nettleseren. Ditt eget API må selv sjekke tillatelser. Å skjule en knapp stopper ikke noen fra å kalle endepunktet direkte.
- Å bruke live-nøkler under testing. Bruk testmodus-nøkler til du er klar til å lansere.
Hva du skal be AI-byggeren om
- «Hvilke eksterne API-er bruker denne appen, og hva koster hver av dem?»
- «Kall betalings-API-et kun fra serveren. Les nøkkelen fra en miljøvariabel.»
- «List hvert endepunkt i API-et vårt, hva det gjør, og hvem som har lov til å kalle det.»
- «Sjekk på serveren at innlogget bruker eier bookingen før den oppdateres eller slettes.»
- «Hvis e-post-API-et feiler, lagre bookingen likevel og logg feilen.»
- «Bruk leverandørens testmodus foreløpig.»
API-er i Mythex
Mythex kan bygge ditt eget API — som en del av en nettapp, eller som en egen backend i Node, Python (FastAPI), C# eller Java som kjører ved siden av frontend-en din — og skrive koden som kaller eksterne tjenester. Du legger inn nøklene deres som prosjekthemmeligheter i stedet for i chatten, og de er tilgjengelige for appen din i forhåndsvisningen og etter publisering. Dokumentasjonen har oppskrifter for integrering av et hvilket som helst API og bygging av en REST-API-backend.
Spørsmål
Hva er et API med enkle ord?
Et API (application programming interface) er en definert måte for ett stykke programvare å be et annet om data eller å få det til å gjøre noe. Appen din sender en forespørsel i et avtalt format, og det andre systemet sender tilbake et svar — for eksempel værdata, et betalingsresultat eller et AI-generert svar.
Hva er et REST-API?
Et REST-API er en vanlig stil for web-API-er der hver type ting (bookinger, kunder) har en URL, og du bruker standard HTTP-metoder — GET for å lese, POST for å opprette, PUT eller PATCH for å oppdatere, DELETE for å fjerne. Data kommer vanligvis tilbake som JSON.
Hva er en API-nøkkel, og hvor bør jeg oppbevare den?
En API-nøkkel er en hemmelig streng som identifiserer appen din overfor en tjeneste, og den lar ofte appen bruke penger eller få tilgang til data. Oppbevar den i miljøvariabler eller prosjektets hemmeligheter på serveren, aldri i kode som kjører i nettleseren, og aldri i et offentlig repositorium.
Hva er forskjellen på et API og en webhook?
Med et API spør appen din en annen tjeneste om noe når den ønsker det. Med en webhook kaller den andre tjenesten appen din når noe skjer — for eksempel at en betalingsleverandør varsler deg om at en betaling gikk gjennom.