Što je API?

Vjerojatno ste vidjeli pojam "API". Ažuriranja operativnog sustava, web preglednika i aplikacija često najavljuju nove API-je za programere. Ali što je API?

Sučelje za programiranje aplikacija

Pojam API kratica je i označava "Sučelje za programiranje aplikacija".

Zamislite API poput jelovnika u restoranu. Izbornik sadrži popis jela koja možete naručiti, zajedno s opisom svakog jela. Kad odredite koje stavke izbornika želite, kuhinja restorana obavlja posao i pruža vam gotova jela. Ne znate točno kako restoran priprema tu hranu, a zapravo i ne trebate.

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 dostupan za upotrebu u njihovoj aplikaciji.

Ovo nije savršena metafora, jer će programeri možda morati pružiti vlastite podatke API-ju da bi dobili rezultate, pa je možda više poput otmjenog restorana u kojem možete pružiti neke svoje sastojke s kojima će kuhinja raditi.

Ali to je široko točno. API-ji omogućuju programerima da uštede vrijeme koristeći prednost implementacije platforme za izvršavanje sitnih i sitnih poslova. To pomaže u smanjenju količine koda koji programeri trebaju stvoriti, a također pomaže u stvaranju više dosljednosti 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 velik broj API-ja - kao i svaki drugi operativni sustav - kako bi vam to olakšao.

Ako, na primjer, želite ugraditi web preglednik za prikaz jedne ili više web stranica, ne morate vlastiti web preglednik isprogramirati od nule samo za svoju aplikaciju. API WKWebView upotrebljavate za ugrađivanje objekta preglednika WebKit (Safari) u svoju aplikaciju.

Ako želite snimati fotografije ili video zapise s iPhoneove kamere, ne morate sami pisati sučelje kamere. API-je kamere upotrebljavate za ugrađivanje ugrađene kamere iPhone-a u aplikaciju. Da API-ji ne postoje da bi to olakšali, programeri aplikacija morali bi stvoriti vlastiti softver za kameru i interpretirati ulaze hardvera kamere. No, programeri Appleovog operativnog sustava odradili su sve teške napore tako da programeri mogu samo koristiti API kamere za ugrađivanje kamere, a zatim nastaviti s izradom svoje aplikacije. A kada Apple poboljša API kamere, sve aplikacije koje se na njega oslanjaju automatski će iskoristiti to poboljšanje.

To se odnosi na svaku platformu. Na primjer, želite li stvoriti dijaloški okvir na sustavu Windows? Za to postoji API. Želite li podržati provjeru autentičnosti otiska prsta na Androidu? Postoji i API za to, tako da ne morate testirati svaki različiti senzor otiska prsta proizvođača Androida. Programeri ne moraju iznova izmišljati kotač.

API-ji kontroliraju pristup resursima

API-ji se također koriste za kontrolu pristupa hardverskim uređajima i softverskim funkcijama za koje aplikacija ne mora nužno imati dozvolu. Zato API-ji često igraju veliku ulogu u sigurnosti.

POVEZANO: Kako spriječiti da web stranice traže vaše mjesto

Na primjer, ako ste ikada posjetili web mjesto i u svom pregledniku vidjeli poruku da web mjesto traži vašu preciznu lokaciju, to web mjesto pokušava upotrijebiti API za geolokaciju u vašem web pregledniku. Web preglednici izlažu API-je poput ovog kako bi web programerima olakšao pristup vašoj lokaciji - oni mogu samo pitati "gdje ste?" a preglednik se trudi pristupati GPS-u ili obližnjim Wi-Fi mrežama kako bi pronašao vaše fizičko mjesto.

Međutim, preglednici te podatke izlažu i putem API-ja jer je moguće kontrolirati pristup. Kada web mjesto želi pristup vašem točnom fizičkom mjestu, jedini način na koji ga mogu dobiti je putem API-ja za lokaciju. A kada ga web mjesto pokuša koristiti, vi - korisnik - možete dopustiti ili odbiti ovaj zahtjev. Jedini način pristupa hardverskim resursima poput GPS senzora je putem API-ja, tako da preglednik može kontrolirati pristup hardveru i ograničiti ono što aplikacije mogu učiniti.

Isti se princip koristi u modernim mobilnim operativnim sustavima poput iOS-a i Androida, gdje mobilne aplikacije imaju dozvole koja se mogu nametnuti kontrolom pristupa API-ima. Na primjer, ako programer pokuša pristupiti kameri putem API-ja kamere, možete odbiti zahtjev za dozvolom i aplikacija nema načina da pristupi kameri vašeg uređaja.

Datotečni sustavi koji koriste dozvole - kao što to rade na sustavima Windows, Mac i Linux - imaju ta dopuštenja nametnuta API-jem datotečnog sustava. Tipična aplikacija nema izravan pristup neobrađenom fizičkom tvrdom disku. Umjesto toga, aplikacija mora pristupiti datotekama putem API-ja.

API-ji se koriste za komunikaciju između usluga

API-ji se koriste i iz svih drugih razloga. Na primjer, ako ste ikada vidjeli objekt Google Maps ugrađen na web mjestu, to web mjesto koristi API Google Maps za ugrađivanje te karte. Google izlaže API-je poput ovog web programerima, koji zatim mogu koristiti API-je za umetanje složenih objekata na njihovu web stranicu. Ako API-ji poput ovog ne postoje, programeri će možda morati stvoriti vlastite karte i pružiti vlastite podatke karte samo da bi postavili malo interaktivne karte na web mjesto.

A budući da je riječ o API-ju, Google može kontrolirati pristup Google kartama na web lokacijama trećih strana, osiguravajući da ga koriste na dosljedan način, umjesto da pokušava neuredno ugraditi okvir koji na primjer prikazuje web mjesto Google Maps.

To se odnosi na mnogo različitih internetskih usluga. Postoje API-ji za traženje prijevoda teksta s Google Prevoditelja ili za ugrađivanje Facebook komentara ili tweetova s ​​Twittera na web mjestu.

POVEZANO: Što je OAuth? Kako funkcioniraju ti gumbi za prijavu na Facebook, Twitter i Google

Standard OAuth također definira brojne API-je koji vam omogućuju prijavu na web mjesto s drugom uslugom - na primjer, za korištenje računa Facebook, Google ili Twitter za prijavu na novo web mjesto 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 sa uslugom i vrstu rezultata koju bi programeri trebali očekivati ​​da će dobiti natrag.

Ako ste to prošli, imat ćete bolju ideju što je API. U konačnici, zapravo ne morate znati što je API ako niste programer. Ali ako vidite da je softverska platforma ili usluga dodala nove API-je za različiti hardver ili usluge, programerima bi trebalo biti lakše iskoristiti takve značajke.

Kredit za sliku: patpitchaya / Shutterstock.com.