API
Mi az az API (Application Programming Interface)?
Az API az angol „application programming interface” kifejezés rövidítése, ami magyarul „alkalmazásprogramozási felületet” jelent. Az API-k a szoftverfejlesztők munkáját hivatottak megkönnyíteni azzal, hogy hozzáférést biztosítanak egy adott szoftver vagy eszköz utasításkészletéhez.
Hétköznapi példával élve egy API olyan, mint egy éttermi menü. Egy menü általában az ételek nevét, és azok rövid leírását tartalmazza. Amikor leadod a rendelést, akkor a szakács pontosan tudni fogja, hogy az adott fogás elkészítéséhez milyen hozzávalókat kell felhasználnia, milyen mennyiségben, és hogy milyen lépésekből áll a választott étel elkészítése. Te, mint vendég tudod, hogy mit szeretnél kapni, de azt már nem, hogy az hogyan készül el – és nem is kell tudnod, te csak élvezni szeretnéd a végeredményt.
Hasonlóképpen, amikor egy programozó választ egy utasítást az API-ból, akkor nem kell tudnia, hogy pontosan mi történik a színfalak mögött – például hogy egy Android telefon hogyan jelenít meg egy üzenetet a képernyőn – csak a megfelelő parancsot kell kiválasztania az API-ból, ami elvégzi ezt helyette.
Természetesen az éttermi metafora nem tökéletes, hiszen a programozók gyakran adnak meg saját paramétereket az API-ban a kívánt végeredmények elérése érdekében (habár sok étteremben lehet kérni az adott fogást egy bizonyos összetevő nélkül, szóval még ebben is akad némi hasonlóság).
A lényeg tehát az, hogy az API-k rengeteg időt spórolnak meg a programozók számára, hiszen elég csak megadniuk a parancsokat, és a munka nagy részét az a platform végzi majd, amire éppen fejlesztenek. Mindez a forráskódot is átláthatóbbá teszi, és így egy azonos platformra készült több alkalmazás is hasonló utasításkészlettel rendelkezik majd, ami megkönnyítheti a hibaelhárítást.
Az API-k mind a szoftveres, mind a hardveres erőforrásokhoz hozzáférést biztosíthatnak – természetesen attól függően, hogy mit foglalt beléjük az adott platform készítője.
Hogyan segítik az API-k a fejlesztők munkáját?
Tegyük fel, hogy egy programozó egy alkalmazást szeretne írni Android készülékekre. Az Androidhoz rengeteg API érhető el, mint ahogy az összes többi mobilos és számítógépes operációs rendszerhez is (Windows, iOS, stb.)
Ha szeretnéd, hogy az alkalmazás képes legyen használni a készülék fényképezőjét, akkor nem kell külön írnod egy programot csak ezért, hiszen használhatod az Android kameravezérlő API-ját. Ugyan így elhelyezhetsz alkalmazásodban egy böngészőt is, és temérdek más funkciót, illetve eszközt, amit az Android támogat.
API-k nélkül sokkal tovább tartana elkészíteni még a legegyszerűbb mobilalkalmazásokat és számítógépes szoftvereket is, mert a programozóknak saját maguktól kellene olyan programkódokat írniuk, amelyek tökéletesen képesek kommunikálni az adott platform szoftveres és hardveres alkotóelemeivel.
Egy másik előny, hogy valahányszor a platform tulajdonosa frissíti az API-t (például kijavít egy hibát, vagy hatékonyabbá teszi egy parancs működését), akkor minden olyan alkalmazás frissül ezekkel a változtatásokkal, amik az adott API-val lettek elkészítve.
Az API-k szabályozzák az erőforrásokhoz való hozzáférést
Az API-kat arra is szokás használni, hogy egy alkalmazás hozzáférhessen olyan hardveres és szoftveres funkciókhoz, amikre egyébként nem lenne jogosult. Az API-knak éppen ezért fontos szerepük lehet a biztonságban.
Például amikor egy webhelyet meglátogatva megjelenik az üzenet, hogy a webhely szeretné látni a pontos tartózkodási helyedet, akkor a webhely hozzáférési engedélyt kér tőled a helmyeghatározási API használatához böngésződben. A webböngészők azért teszik elérhetővé ezt az API-t a fejlesztők számára, hogy azok könnyedén hozzáférhessenek tartózkodási helyedhez – persze csak ha erre engedélyt adsz. Ha megadod az engedélyt, akkor a böngésző alkalmazás a GPS vagy valamilyen más helymeghatározási módszer segítségével megkeresi, hogy hol vagy, és jelenti ezt a webhelynek.
Az Androidhasználók gyakran találkozhatnak ilyen jellegű üzenetekkel egy újonnan telepített alkalmazás használatakor, például amikor egy applikáció hozzáférést kér a kamera használatához (Instagram), vagy a tárhely eléréséhez (ha fényképet szeretnél feltölteni telefonodról a Facebookra) és így tovább.
Az számítógépes operációs rendszerek is rengeteg API-t használnak, többek között a fájlengedélyek kezelésére is. Egy adott szoftvernek nincs közvetlen hozzáférése a merevlemezen tárolt adatokhoz – kizárólag egy API-n keresztül olvashatja, módosíthatja, vagy törölheti azokat.
Az API-k szerepe az eszközök közötti kommunikációban
Az API-k azonban még ennél is több mindenre használhatók. Ha például láttál már Google Térképet beágyazva egy weboldalon, akkor az az oldal a Google Térkép API-t használja, hogy megjelenítse az adott térképet. Az ilyen API-kat a Google teszi elérhetővé a webfejlesztők számára, akik így könnyedén elhelyezhetnek összetettebb elemeket is webhelyükön ahelyett, hogy valamilyen félmegoldással csapnának rá például egy térképet az egyik oldalra.
Ez biztosítja azt is, hogy ha a Google frissíti az API-t, az összes térképet megjelenítő webhelyen érvénye lépnek a változások.
Számtalan online szolgáltatás és eszköz üzemeltetője kínál API-kat ezek eléréséhez, Így lehet például fordítást kérni a Google Fordítótól, vagy beágyazni egy interaktív Twitter tweetet egy webhelyre.
Az OAuth szabvány például lehetővé teszi, hogy különféle szolgáltatások fiókjaival lépj be más szolgáltatások webhelyére anélkül, hogy ott külön fiókot kellene létrehoznod. Ezért van az, hogy sok helyen látod a „Bejelentkezés Facebookkal” vagy „Bejelentkezés Google-lal” lehetőségeket.
Gyakori kérdések
Mi az az API?
Az API (Application Programming Interface) egy rövidítés, ami „alkalmazásprogramozási felületet” jelent.
Mire való egy API?
A programozók az API-k segítségével férhetnek hozzá egy szoftver vagy eszköz utasításkészletéhez.