Hva er en API?
Du har sannsynligvis sett begrepet "API" opp. Operativsystem, nettleser og appoppdateringer annonserer ofte nye APIer for utviklere. Men hva er en API?
Applikasjonsprogrammeringsgrensesnitt
Begrepet API er et akronym, og står for "Application Programming Interface."
Tenk på en API som en meny i en restaurant. Menyen gir en liste over retter du kan bestille, sammen med en beskrivelse av hver tallerken. Når du angir hvilke menyelementer du vil ha, gjør restaurantens kjøkken arbeidet og gir deg noen ferdige retter. Du vet ikke nøyaktig hvordan restauranten forbereder den maten, og du trenger ikke å.
På samme måte 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 et operativsystem for eksempel bygger og presenterer dialogboksen "Lagre som". De trenger bare å vite at den er tilgjengelig for bruk i appen deres.
Dette er ikke en perfekt metafor, da utviklere må gi sine egne data til API for å få resultatene, så kanskje det er mer som en fancy restaurant hvor du kan gi noen av dine egne ingredienser kjøkkenet vil fungere med.
Men det er stort sett nøyaktig. APIer tillater utviklere å spare tid ved å utnytte en plattforms implementering for å gjøre det nitty-gritty arbeidet. Dette bidrar til å redusere mengden kodeutviklere må opprette, og bidrar også til å skape mer konsistens på tvers av apper for samme plattform. APIer kan styre tilgangen til maskinvare- og programvareressurser.
APIer 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 gjør - for å gjøre det lettere for deg.
Hvis du vil legge inn en nettleser for å vise en eller flere nettsider, trenger du for eksempel ikke å programmere din egen nettleser fra bunnen av bare for søknaden din. Du bruker WKWebView API til å legge inn et WebKit (Safari) nettleserobjekt i programmet.
Hvis du vil ta bilder eller video fra iPhone-kameraet, trenger du ikke å skrive ditt eget kamera grensesnitt. Du bruker kameraprogrammet til å legge inn iPhones innebygde kamera i appen din. Hvis APIer ikke eksisterte for å gjøre dette enkelt, må apputviklere lage sin egen kameraprogramvare og tolke innspillingen til kamerahardwaren. Men Apples operativsystemutviklere har gjort alt dette hardt arbeid, slik at utviklerne bare kan bruke kameraprogrammet til å legge inn et kamera, og deretter fortsette å bygge sin app. Og når Apple forbedrer kamera-API, vil alle appene som stole på det, dra nytte av denne forbedringen automatisk.
Dette gjelder for alle plattformer. For eksempel, vil du opprette en dialogboks på Windows? Det er en API for det. Vil du støtte fingeravtrykksautentisering på Android? Det er også en API for det, slik at du ikke må teste alle andre Android-produsentens fingeravtrykkssensor. Utviklere trenger ikke å gjenoppfinne hjulet igjen og igjen.
APIer Kontroll tilgang til ressurser
APIer brukes også til å kontrollere tilgangen til maskinvareenheter og programvarefunksjoner som et program ikke nødvendigvis har tillatelse til å bruke. Derfor spiller APIer ofte en stor rolle i sikkerheten.
Hvis du for eksempel har besøkt et nettsted og sett en melding i nettleseren din om at nettstedet ber deg om å se din presise plassering, forsøker nettstedet å bruke geolocation API i nettleseren din. Nettlesere avslører APIer som dette for å gjøre det enkelt for webutviklere å få tilgang til din plassering. De kan bare spørre "hvor er du?" Og nettleseren gjør det harde arbeidet med å få tilgang til GPS eller nærliggende Wi-Fi-nettverk for å finne din fysiske plassering.
Men nettlesere avslører også denne informasjonen via en API, fordi det er mulig å kontrollere tilgangen til den. Når et nettsted ønsker tilgang til din nøyaktige fysiske plassering, er den eneste måten de kan få den via lokaliserings-API. Og når et nettsted prøver å bruke det, kan du-brukeren velge å tillate eller nekte denne forespørselen. Den eneste måten å få tilgang til maskinvareressurser som GPS-sensoren, er gjennom API, slik at nettleseren kan kontrollere tilgangen til maskinvaren og begrense hva apps kan gjøre.
Det samme prinsippet brukes på moderne mobile operativsystemer som iOS og Android, der mobilappene har tillatelser som kan håndheves ved å kontrollere tilgangen til APIer. Hvis en utvikler forsøker å få tilgang til kameraet via kameraprogrammet, kan du for eksempel nekte tillatelsesforespørselen, og appen har ingen måte å få tilgang til enhetens kamera.
Filsystemer som bruker tillatelser - som de gjør på Windows, Mac og Linux - har de tillatelsene som håndheves av filsystemet API. En typisk applikasjon har ikke direkte tilgang til den raske fysiske harddisken. I stedet må appen få tilgang til filer via en API.
APIer brukes til kommunikasjon mellom tjenester
APIer brukes også av alle andre grunner. Hvis du for eksempel har sett et Google Maps-objekt som er innebygd på et nettsted, bruker nettstedet nettstedet Google Maps til å legge inn det kartet. Google avslører APIer som dette for webutviklere, som kan bruke APIene til å plukke komplekse objekter rett på deres nettsted. Hvis APIer som dette ikke eksisterte, kan utviklere kanskje lage egne kart og gi sine egne kartdata bare for å sette et lite interaktivt kart på en nettside.
Og fordi det er en API, kan Google kontrollere tilgangen til Google Maps på tredjeparts nettsteder, slik at de bruker den på en konsistent måte i stedet for å forsøke å legge inn en ramme som viser Google Maps-nettstedet, for eksempel.
Dette gjelder for mange forskjellige onlinetjenester. Det er APIer for å be om tekstoversettelse fra Google Translate, eller å legge inn Facebook-kommentarer eller tweets fra Twitter på et nettsted.
OAuth-standarden definerer også en rekke APIer som lar deg logge på et nettsted med en annen tjeneste, for eksempel å bruke Facebook, Google eller Twitter-kontoen din 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 hvilken type utdata de utviklere bør forvente å motta tilbake.
Hvis du har kommet gjennom dette, får du en bedre ide om hva en API er. Til slutt trenger du ikke å vite hva en API er, med mindre du er utvikler. Men hvis du ser en programvareplattform eller tjeneste har lagt til nye APIer for ulike maskinvare eller tjenester, bør det være enklere for utviklere å dra nytte av slike funksjoner.
Bildekreditt: patpitchaya / Shutterstock.com.