Applikasjonsprogrammeringsgrensesnitt
Begrepet API er et akronym, og står for "Application Programming Interface."
Tenk på en API som en meny i en restaurant. På menyen får du 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 egentlig ikke.
På samme måte viser en API en mengde 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 "Lagre som" -dialogboksen. De trenger bare å vite at det 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 kontrollere 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 det 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 kameraets 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 forskjellige 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 dette nettstedet å bruke geolokasjons-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.
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. For eksempel, hvis du noen gang har sett et Google Maps-objekt som er innebygd på et nettsted, bruker nettstedet nettstedet Google Maps til å integrere 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å et nettsted.
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-nettsiden, 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.