Što je API?
Vjerojatno ste vidjeli izraz "API". Operativni sustav, web-preglednik i ažuriranja aplikacija često objavljuju nove API-je za programere. Ali što je API?
Sučelje za programiranje aplikacija
Pojam API je skraćenica, a predstavlja "Application Programming Interface".
Razmislite o API-ju kao o izborniku u restoranu. Izbornik sadrži popis jela koje možete naručiti, zajedno s opisom svakog jela. Kada odredite koje stavke izbornika želite, kuhinja u restoranu radi i nudi vam gotova jela. Ne znaš točno kako restoran priprema tu hranu, a ti zapravo ne trebaš.
Slično tome, API navodi hrpu operacija koje programeri mogu koristiti, zajedno s opisom onoga što rade. Programer ne mora nužno znati kako, na primjer, operativni sustav gradi i prikazuje dijaloški okvir "Spremi kao". Oni samo trebaju znati da je dostupna za upotrebu u njihovoj aplikaciji.
Ovo nije savršena metafora, jer će programeri možda morati dati vlastite podatke API-ju da bi dobili rezultate, pa je možda više kao otmjeni restoran u kojem možete pružiti neke od svojih sastojaka s kojima će kuhinja raditi.
Ali to je uglavnom točno. API-ji omogućuju razvojnim programerima uštedu vremena iskorištavanjem implementacije platforme za obavljanje gustog posla. To pomaže smanjiti količinu koda koje programeri trebaju stvoriti, a također pomaže u stvaranju više dosljednosti među aplikacijama za istu platformu. API-ji mogu kontrolirati pristup hardverskim i softverskim resursima.
API-ji olakšavaju život programerima
Recimo da želite razviti aplikaciju za iPhone. Appleov operativni sustav iOS nudi veliki broj API-ja - kao što to čini svaki drugi operativni sustav - kako bi vam to olakšali.
Ako želite web-preglednik ugraditi da bi prikazao jednu ili više web-stranica, na primjer, ne morate programirati vlastiti web-preglednik samo za svoju aplikaciju. Pomoću API-ja WKWebView ugrađujete WebKit (Safari) objekt preglednika u svoju aplikaciju.
Ako želite snimiti fotografije ili videozapise s fotoaparata iPhone uređaja, ne morate pisati vlastito sučelje fotoaparata. Pomoću API-ja fotoaparata ugrađujete ugrađenu kameru iPhone u aplikaciju. Ako API-ji nisu postojali da bi se to olakšalo, programeri aplikacija trebali bi izraditi vlastiti softver kamere i interpretirati ulaze hardvera fotoaparata. No, Appleovi programeri operativnog sustava učinili su sav ovaj naporan rad kako bi programeri mogli samo koristiti API kamere kako bi ugradili kameru, a zatim nastavili s izgradnjom svoje aplikacije. A kada Apple poboljša API kamere, sve aplikacije koje se oslanjaju na njega automatski će iskoristiti to poboljšanje.
To se odnosi na svaku platformu. Na primjer, želite li stvoriti dijaloški okvir u sustavu Windows? Postoji API za to. Želite li podržati provjeru autentičnosti otiska prsta na Androidu? Tu je i API za to, tako da ne morate testirati svaki senzor otiska prsta svakog proizvođača Androida. Programeri ne moraju iznova izumiti točak.
API-ji kontroliraju pristup resursima
API-ji se također koriste za kontrolu pristupa hardverskim uređajima i softverskim funkcijama koje aplikacija ne mora nužno imati dozvolu za korištenje. Zato API-ji često igraju veliku ulogu u sigurnosti.
Na primjer, ako ste ikada posjetili web-lokaciju i u pregledniku vidjeli poruku da web-lokacija traži vašu preciznu lokaciju, ta web-lokacija pokušava koristiti API geolokacije u vašem web-pregledniku. Web-preglednici otkrivaju takve API-je kako bi web-programeri lakše pristupili vašoj lokaciji - mogu samo pitati "gdje ste?", A preglednik radi napornim pristupom GPS-u ili obližnjim Wi-Fi mrežama kako bi pronašao vašu fizičku lokaciju.
Međutim, preglednici također otkrivaju ove informacije putem API-ja jer je moguće kontrolirati pristup do njih. Kada web-lokacija želi pristup vašem točnom fizičkom mjestu, jedini način na koji je mogu dobiti jest API lokacije. A kada ga web-lokacija pokuša upotrijebiti, vi-korisnik-možete odabrati dopustiti ili odbiti ovaj zahtjev. Jedini način za pristup hardverskim resursima kao što je GPS senzor je putem API-ja, tako da preglednik može kontrolirati pristup hardveru i ograničiti mogućnosti aplikacija.
Isti princip koristi se u modernim mobilnim operacijskim sustavima kao što su iOS i Android, gdje mobilne aplikacije imaju dozvole koje se mogu provoditi kontroliranjem pristupa API-jevima. Na primjer, ako programer pokuša pristupiti kameri putem API-ja kamere, možete odbiti zahtjev za dozvolu, a aplikacija nema načina pristupa kameri uređaja.
Datotečni sustavi koji koriste dozvole - kao što to rade u sustavu Windows, Mac i Linux - imaju ta ovlaštenja nametnuta API-jem datotečnog sustava. Tipična aplikacija nema izravan pristup sirovom fizičkom tvrdom disku. Umjesto toga, aplikacija mora pristupati datotekama putem API-ja.
API-ji se koriste za komunikaciju između usluga
API-ji se također koriste za sve druge razloge. Na primjer, ako ste ikada vidjeli objekt Google karata ugrađen na web-lokaciju, ta web-lokacija upotrebljava API Google karata za ugrađivanje te karte. Google izlaže API-je poput takvih web-programerima koji zatim mogu koristiti API-je za skupljanje složenih objekata na svojoj web-lokaciji. Ako takvi API-ji ne postoje, programeri će možda morati izraditi vlastite karte i pružiti vlastite podatke karte samo da bi postavili malu interaktivnu kartu na web-lokaciju.
Budući da je to API, Google može kontrolirati pristup Google Kartama na web-lokacijama trećih strana, osiguravajući da ga upotrebljavaju na dosljedan način, a ne pokušavaju neredovno ugraditi okvir koji prikazuje web-lokaciju Google karata, na primjer.
To se odnosi na mnoge različite online usluge. Postoje API-ji za traženje prijevoda teksta s Google Prevoditelja ili ugrađivanje Facebook komentara ili tweetova s Twittera na web-lokaciju.
Standard OAuth također definira brojne API-je koji vam omogućuju prijavu na web-lokaciju s drugom uslugom - na primjer, za korištenje računa na Facebooku, Googleu ili Twitteru za prijavu na novu web-lokaciju bez stvaranja novog korisničkog računa samo za tu web-lokaciju , API-ji su standardni ugovori koji definiraju način na koji programeri komuniciraju s uslugom i vrstu ishoda koje bi programeri trebali očekivati da će dobiti natrag.
Ako ste ovo prošli, bolje ćete shvatiti što je to API. U konačnici, ne trebate znati što je API, osim ako niste razvojni programer. No, ako vidite da je softverska platforma ili usluga dodala nove API-je za različiti hardver ili usluge, programeri bi trebali lakše iskoristiti takve značajke.
Kredit za slike: patpitchaya / Shutterstock.com.