Probabil că ai auzit de termenul „API”. Sistemul de operare, browserul web și actualizările de aplicații anunță deseori API-uri noi pentru dezvoltatori. Dar ce este?
Interfața de Programare a Aplicației (Application Programming Interface)
Ne putem gândi la acesta ca la un meniu într-un restaurant. Meniul oferă o listă de feluri de mâncare pe care le putem comanda, împreună cu o descriere a fiecăruia. Când specificăm ce elemente de meniu dorim, bucătăria restaurantului își face treaba și ne oferă niște feluri de mâncare finite. Nu știm exact cum restaurantul pregătește mâncarea și nici nu avem nevoie de asta.
În mod similar, enumeră operații pe care dezvoltatorii le pot utiliza, împreună cu o descriere a ceea ce fac. Dezvoltatorul nu trebuie neapărat să știe cum, de exemplu, un sistem de operare construiește și prezintă o casetă de dialog „Salvați ca”. Trebuie doar să știe că este disponibil pentru utilizare în aplicația lor.
Aceasta nu este o metaforă perfectă, deoarece dezvoltatorii ar putea fi nevoiți să furnizeze propriile date pentru a obține rezultatele. Așa că poate este mai mult un restaurant select unde putem să oferim câteva dintre propriile ingrediente cu care va lucra bucătăria.
Dar este în mare măsură precisă. Acestea permit dezvoltatorilor să economisească timp, profitând de implementarea unei platforme pentru a realiza o muncă dificilă. Acest lucru ajută la reducerea cantității de cod pe care dezvoltatorii trebuie să îl creeze. De asemenea, ajută la crearea unei mai mari coerențe între aplicații pentru aceeași platformă. API-urile pot controla accesul la resurse hardware și software.
Fac viața mai ușoară dezvoltatorilor
Să presupunem că dorim să dezvoltăm o aplicație pentru iPhone. Sistemul de operare iOS de la Apple oferă un număr mare de API. Ca și celelalte sisteme de operare – pentru a face acest lucru mai ușor.
Dacă dorim să încorporam un browser web pentru a afișa una sau mai multe pagini web, nu trebuie să programăm propriul browser web de la zero doar pentru aplicația noastră. Putem utiliza API-ul WKWebView pentru a încorpora un obiect de browser WebKit (Safari) în aplicația noastră.
Dacă dorim să capturăm fotografii de pe aparatul foto iPhone, nu este necesar să scriem propria interfață a camerei. Utilizăm API-ul camerei pentru a încorpora camera iPhone-ului în aplicația noastră. Dacă nu ar exista un API pentru a face acest lucru, dezvoltatorii ar trebui să-și creeze propriul software de cameră. Dar dezvoltatorii sistemului de operare ai Apple au făcut toată această muncă grea. Astfel încât dezvoltatorii să poată folosi API-ul pentru a încorpora o cameră și apoi să-și construiască aplicația. Și, atunci când Apple îmbunătățește API-ul camerei, toate aplicațiile care se bazează pe aceasta vor beneficia automat de această îmbunătățire.
Acest lucru se aplică fiecărei platforme. De exemplu, dorim să facem o casetă de dialog pe Windows. Există un API pentru asta. Dorim să sprijinim autentificarea cu amprentă digitală pe Android? Există și pentru acest lucru, astfel încât să nu trebuie să testam fiecare senzor de amprentă diferit al producătorului Android. Dezvoltatorii nu trebuie să reinventeze roata din nou și din nou.
API-urile controlează accesul la resurse
Acestea sunt folosite pentru a controla accesul la funcțiile software pe care o aplicație nu are permisiunea de a le utiliza. De aceea, joacă adesea un rol important în securitate.
De exemplu, dacă ai vizitat vreodată un site Web și ai văzut un mesaj în browser cum că site-ul solicită să vadă locația ta exactă, site-ul respectiv încearcă să utilizeze API-ul de localizare în browser-ul web. Navigatoarele de pe Internet expun astfel de API-uri pentru a ușura accesul dezvoltatorilor web la locația ta. Pot întreba doar „unde te afli?” si browserul face munca grea de a accesa rețelele GPS sau Wi-Fi din apropiere pentru a vă găsi locația fizică.
Cu toate acestea, browserele expun și aceste informații printr-un API, deoarece este posibil să controlezi accesul la acesta. Când un site dorește acces la locația fizică exactă, singura modalitate prin care poate fi obținută este prin API-ul de locație. Și când un site încearcă să-l folosească, tu – utilizatorul – poți alege să permiți sau să refuzi această solicitare. Singura modalitate de a accesa resursele hardware precum senzorul GPS este prin API, astfel încât browserul poate controla accesul la hardware și poate limita ceea ce aplicațiile pot face.
Același principiu este utilizat și în sistemele de operare mobile moderne, cum ar fi iOS și Android, în care aplicațiile mobile au permisiuni care pot fi impuse prin controlul accesului la API-uri. De exemplu, dacă un dezvoltator încearcă să acceseze camera prin API-ul camerei, poți respinge cererea de permisiune și aplicația nu are acces la camera aparatului foto.
Sistemele de fișiere care utilizează permisiunile – la fel ca în Windows, Mac și Linux – au acele permisiuni impuse de API-ul sistemului de fișiere. O aplicație tipică nu are acces direct la hard diskul fizic brut. În schimb, aplicația trebuie să acceseze fișiere printr-un API.
API-urile sunt folosite și pentru comunicarea între servicii
API-urile sunt folosite pentru tot felul de alte motive. De exemplu, dacă ai văzut vreodată un obiect Google Maps încorporat pe un site Web, acel site utilizează API-ul Google Maps pentru a încorpora această hartă. Google expune API-uri ca acesta pentru dezvoltatorii web, care apoi pot utiliza API-urile pentru a construi obiecte complexe chiar pe site-ul lor. Dacă astfel de API-uri nu există, dezvoltatorii ar putea să-și creeze propriile hărți și să furnizeze propriile date de hartă doar pentru a pune o mică hartă interactivă pe un site web.
Și pentru că este un API, Google poate controla accesul la Google Maps pe site-uri web ale unor terțe părți, asigurându-le că o utilizează într-un mod coerent, în loc să încerce să o încorporeze într-un cadru în care să afișeze, de exemplu, site-ul Google Maps.
Comentarii