Hva er et API?

Du har sannsynligvis sett begrepet “API” komme opp. Operativsystem, nettleser og appoppdateringer kunngjør ofte nye API-er for utviklere. Men hva er en API?

Applikasjonsprogrammeringsgrensesnitt

Begrepet API er et akronym, og det står for "Application Programming Interface."

Tenk på et API som en meny i en restaurant. Menyen inneholder en liste over retter du kan bestille, sammen med en beskrivelse av hver rett. Når du spesifiserer hvilke menyelementer du vil, gjør restaurantens kjøkken arbeidet og gir deg noen ferdige retter. Du vet ikke nøyaktig hvordan restauranten tilbereder den maten, og det trenger du ikke egentlig.

Tilsvarende viser en API en rekke operasjoner som utviklere kan bruke, sammen med en beskrivelse av hva de gjør. Utvikleren trenger ikke nødvendigvis å vite hvordan for eksempel et operativsystem bygger og presenterer en dialogboksen "Lagre som". De trenger bare å vite at den er tilgjengelig for bruk i appen deres.

Dette er ikke en perfekt metafor, ettersom utviklere kanskje må gi sine egne data til API-et for å få resultatene, så kanskje det er mer som en fancy restaurant hvor du kan levere noen av dine egne ingredienser kjøkkenet vil jobbe med.

Men det er stort sett nøyaktig. API-er lar utviklere spare tid ved å dra nytte av implementeringen av en plattform for å gjøre det nitty-gritty arbeidet. Dette bidrar til å redusere mengden kode som utviklere trenger å lage, og bidrar også til å skape mer konsistens på tvers av apper for samme plattform. API-er kan kontrollere tilgang til maskinvare- og programvareressurser.

API-er gjør livet enklere for utviklere

La oss si at du vil utvikle en app for en iPhone. Apples iOS-operativsystem gir et stort antall APIer - som alle andre operativsystemer - for å gjøre dette lettere for deg.

Hvis du for eksempel vil legge inn en nettleser for å vise en eller flere websider, trenger du ikke å programmere din egen nettleser fra bunnen av bare for applikasjonen din. Du bruker WKWebView API til å bygge inn et WebKit (Safari) nettleserobjekt i applikasjonen din.

Hvis du vil ta bilder eller video fra iPhone-kameraet, trenger du ikke å skrive ditt eget kameragrensesnitt. Du bruker kamera-API-et til å legge inn iPhones innebygde kamera i appen din. Hvis API-er ikke eksisterte for å gjøre dette enkelt, måtte apputviklere lage sin egen kameraprogramvare og tolke kameraets maskinvares innganger. Men Apples operativsystemutviklere har gjort alt dette harde arbeidet, slik at utviklerne bare kan bruke kamera-API-et til å bygge inn et kamera, og deretter fortsette å bygge appen sin. Og når Apple forbedrer kameraets API, vil alle appene som stoler på det dra nytte av forbedringen automatisk.

Dette gjelder alle plattformer. Vil du for eksempel opprette en dialogboks på Windows? Det er en API for det. Vil du støtte godkjenning av fingeravtrykk på Android? Det er også et API for det, så du slipper å teste hver Android-produsentens fingeravtrykkssensor. Utviklere trenger ikke å gjenoppfinne hjulet om og om igjen.

API-er styrer tilgang til ressurser

API-er brukes også til å kontrollere tilgang til maskinvareenheter og programvarefunksjoner som et program ikke nødvendigvis har tillatelse til å bruke. Derfor spiller APIer ofte en stor rolle i sikkerheten.

RELATERT: Hvordan stoppe nettsteder fra å be om din plassering

For eksempel, hvis du noen gang har besøkt et nettsted og sett en melding i nettleseren din om at nettstedet ber om å se din nøyaktige plassering, prøver nettstedet å bruke geolocation API i nettleseren din. Nettlesere avslører APIer som dette for å gjøre det enkelt for nettutviklere å få tilgang til posisjonen din - de kan bare spørre "hvor er du?" og nettleseren gjør det harde arbeidet med å få tilgang til GPS eller Wi-Fi-nettverk i nærheten for å finne din fysiske plassering.

Nettlesere eksponerer imidlertid også denne informasjonen via et API fordi det er mulig å kontrollere tilgangen til den. Når et nettsted ønsker tilgang til den nøyaktige fysiske plasseringen din, er den eneste måten de kan få det via lokaliserings-API. Og når et nettsted prøver å bruke det, kan du - brukeren - velge å tillate eller avvise denne forespørselen. Den eneste måten å få tilgang til maskinvareressurser som GPS-sensoren er via API, slik at nettleseren kan kontrollere tilgangen til maskinvaren og begrense hva apper kan gjøre.

Dette samme prinsippet brukes på moderne mobile operativsystemer som iOS og Android, hvor mobilapper har tillatelser som kan håndheves ved å kontrollere tilgangen til API-er. For eksempel, hvis en utvikler prøver å få tilgang til kameraet via kameraets API, kan du nekte tillatelsesforespørselen, og appen har ingen mulighet til å få tilgang til enhetens kamera.

Filsystemer som bruker tillatelser - som de gjør på Windows, Mac og Linux - har disse tillatelsene håndhevet av filsystemets API. Et typisk program har ikke direkte tilgang til den rå fysiske harddisken. I stedet må appen få tilgang til filer via et API.

API-er brukes til kommunikasjon mellom tjenester

APIer brukes også av alle andre grunner. For eksempel, hvis du noen gang har sett et Google Maps-objekt innebygd på et nettsted, bruker det nettstedet Google Maps API for å bygge inn det kartet. Google eksponerer APIer som dette for webutviklere, som deretter kan bruke APIene til å plukke komplekse objekter rett på nettstedet deres. Hvis API-er som dette ikke eksisterte, kan det hende at utviklere må lage sine egne kart og oppgi sine egne kartdata bare for å sette et lite interaktivt kart på et nettsted.

Og fordi det er et API, kan Google kontrollere tilgang til Google Maps på tredjeparts nettsteder, og sikre at de bruker det på en konsistent måte i stedet for å prøve å legge inn en ramme som for eksempel viser Google Maps-nettstedet.

Dette gjelder mange forskjellige online-tjenester. Det er API-er for å be om tekstoversettelse fra Google Translate, eller legge inn Facebook-kommentarer eller tweets fra Twitter på et nettsted.

RELATERT: Hva er OAuth? Hvordan disse Facebook-, Twitter- og Google-påloggingsknappene fungerer

OAuth-standarden definerer også et antall APIer som lar deg logge på et nettsted med en annen tjeneste - for eksempel å bruke Facebook-, Google- eller Twitter-kontoene dine til å logge på et nytt nettsted uten å opprette en ny brukerkonto bare for det nettstedet . APIer er standardkontrakter som definerer hvordan utviklere kommuniserer med en tjeneste, og hva slags produksjon disse utviklerne kan forvente å motta.

Hvis du har fått gjennom dette, får du en bedre ide om hva en API er. Til slutt trenger du ikke egentlig å vite hva en API er med mindre du er en utvikler. Men hvis du ser at en programvareplattform eller -tjeneste har lagt til nye API-er for forskjellige maskinvare eller tjenester, bør det være lettere for utviklere å dra nytte av slike funksjoner.

Bildekreditt: patpitchaya / Shutterstock.com.