If-Koubou

Što je API?

Što je API? (Kako da)

Vjerojatno ste vidjeli pojam "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 akronim, a riječ je o "Application Programming Interface".

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

Slično tome, API navodi hrpu operacija koje razvojni programeri mogu koristiti, zajedno s opisom onoga što rade. Razvojni programer ne mora nužno znati kako se, na primjer, gradi operativni sustav i predstavlja dijaloški okvir "Spremi kao". Oni samo trebaju znati da je dostupna za upotrebu u svojoj aplikaciji.

To nije savršena metafora, budući da programeri možda moraju pružiti vlastite podatke API-ji kako bi dobili rezultate, pa je možda više poput fancy restorana gdje možete ponuditi neke od vaših sastojaka s kojima će kuhinja raditi.

Ali, to je uglavnom točno. API-ji dopušta razvojnim programerima da uštedu vrijeme iskorištavanjem implementacije platforme kako bi obavili taj posao. To pomaže smanjiti količinu razvojnih programera za kodove koji su potrebni za izradu te pomaže u stvaranju više dosljednosti u svim aplikacijama za istu platformu. API-ji mogu kontrolirati pristup hardverskim i softverskim resursima.

API-ji olakšavaju život za razvojne programere

Pretpostavimo da želite razviti aplikaciju za iPhone. Appleov iOS operativni sustav pruža veliki broj API-ja - kao i svaki drugi operativni sustav - kako bi vam to olakšalo.

Ako, na primjer, želite ugraditi web preglednik da bi se prikazala jedna ili više web stranica, ne morate sami programirati vlastiti web preglednik samo za svoju aplikaciju. API WKWebView upotrebljavate za ugrađivanje objekta preglednika WebKit (Safari) u aplikaciju.

Ako želite snimiti fotografije ili videozapise s fotoaparata iPhone uređaja, ne morate napisati svoje sučelje fotoaparata. Pomoću API-ja fotoaparata ugrađujete ugrađeni fotoaparat iPhone u aplikaciju. Ako API-ji nisu postojali kako bi to olakšali, razvojni programeri aplikacija trebali bi izraditi vlastiti softver fotoaparata i tumačiti ulaze hardvera fotoaparata. No, razvojni programeri operacijskih sustava tvrtke Apple učinili su sve te napore pa razvojni programeri mogu jednostavno upotrebljavati API za kameru za ugrađivanje kamere i nastaviti s izgradnjom aplikacije. A kad Apple poboljšava API za kameru, sve aplikacije koje se oslanjaju na to će automatski iskoristiti to poboljšanje.

To vrijedi za svaku platformu. Na primjer, želite li stvoriti dijaloški okvir na sustavu Windows? Postoji API za to. Želite podržati provjeru autentičnosti otiska prsta na Androidu? Tu je i API za to, tako da ne morate testirati svaki drugi senzor otiska prsta proizvođača Androida. Razvijatelji ne moraju ponovno iznova nadoknaditi kotač.

API-ji kontroliraju pristup resursima

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

Na primjer, ako ste ikada posjetili web stranicu i vidjeli poruku u pregledniku da web mjesto traži da vidite svoju preciznu lokaciju, ta web lokacija pokušava upotrebljavati API geolokacije u vašem web pregledniku. Web preglednici izlažu takve API-je kako bi web programeri lakše pristupili vašoj lokaciji - mogu samo pitati "gdje se nalazite?", A preglednik pokušava pristupiti GPS-u ili Wi-Fi mrežama kako bi pronašao vašu fizičku lokaciju.

Međutim, preglednici također izlažu ove informacije putem API-ja jer je moguće kontrolirati pristup do njega. Kada web-lokacija želi pristup točnoj fizičkoj lokaciji, jedini način na koji to mogu dobiti je putem API-ja lokacije. A kada web stranica pokuša upotrijebiti, vi - korisnik - može odabrati dopuštenje ili odbijanje ovog zahtjeva. Jedini način pristupa hardverskim resursima kao što je GPS senzor je putem API-ja, tako da preglednik može kontrolirati pristup hardveru i ograničiti aplikacije koje mogu učiniti.

Isto se načelo upotrebljava i na suvremenim mobilnim operacijskim sustavima kao što su iOS i Android, gdje mobilne aplikacije imaju dozvole koje se mogu provesti kontroliranjem pristupa API-jima. Na primjer, ako programer pokuša pristupiti kameri putem API-ja fotoaparata, možete odbiti zahtjev za dozvolom i aplikacija ne može pristupiti kameri uređaja.

Sustavi datoteka koji koriste dozvole, kao i na Windows, Mac i Linux, imaju ta dopuštenja koja provodi API datotečni sustav. Tipična aplikacija nema izravan pristup fizičkom 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 za sve druge razloge. Na primjer, ako ste ikad vidjeli objekt Google Karata ugrađen na web-lokaciju, ta web-lokacija upotrebljava API Google karte za ugrađivanje te karte. Google izlaže takve API-jeve programerima web-stranica, koji zatim mogu koristiti API-je za plop složenih objekata izravno na svojoj web stranici. Ako takvi API-ji ne postoje, razvojni programeri možda će morati izraditi vlastite karte i dati vlastite podatke o karti samo kako bi na web stranici stavili malo interaktivne karte.

A zbog toga što je to API, Google može kontrolirati pristup Google Kartama na web stranicama trećih strana, osiguravajući da ih koriste na dosljedan način, a ne pokušavajući zazvučati okvir koji prikazuje web stranicu Google karata, na primjer.

To se odnosi na mnoge različite online usluge. Postoje API-ji za zatraživanje prijevoda teksta s Google Prevoditelja ili ugrađivanje Facebook komentara ili tweeta s Twittera na web stranicu.

Standard OAuth također definira brojne API-je koji vam omogućuju da se prijavite na web stranicu s drugom uslugom - na primjer, da biste upotrebljavali račune na usluzi Facebook, Google ili Twitter da biste se prijavili na novu web-lokaciju bez stvaranja novog korisničkog računa samo za tu web-lokaciju , API-ji su standardni ugovori koji definiraju kako programeri komuniciraju s uslugom i vrstu izlaza koje bi razvojni programeri trebali očekivati.

Ako ste to ostvarili, imat ćete bolju predodžbu o tome što je API. Na kraju, zapravo ne morate znati koji je API ako niste razvojni programer. No, ako vidite da softverska platforma ili usluga ima dodavanje novih API-ja za različite hardvere ili usluge, razvojni programeri trebaju biti lakše iskoristiti takve značajke.

Slikovni kredit: patpitchaya / Shutterstock.com.