Hirdetés

API: hogy kommunikálnak egymással a szoftvereink?

|

Mi, emberek beszéddel, gesztusokkal kommunikálunk, és valamilyen módon a kütyüknek és szolgáltatásoknak is szót kell érteniük egymással. Megmutatjuk, hogyan teszik ezt eszközeink.

Hirdetés

Szoftver irányít ma már mindent, legyen az egy eszköz vagy éppen egy szolgáltatás. Teljesen mindegy, hogy épp a OneDrive-ra töltünk fel adatokat, mozizunk a mobilon, vagy adóbevallást nyújtunk be, a háttérben egy (vagy inkább több) API is tevékenykedik, hogy a folyamat zökkenőmentes legyen. A szoftverek közötti kommunikáció voltaképpen nem több egyszerű adatcserénél, amelynek módját, vagy ha úgy tetszik, keretét az API-k, vagyis az alkalmazásprogramozói interfészek adják meg.

Mi fán terem az API?

Ha nagyon le szeretnénk egyszerűsíteni a dolgot, akkor az API olyan rutinok és utasítások gyűjteménye, amely arra való, hogy egy szoftver adatokat tudjon lekérni egy másik rendszerből, vagy hozzáférjen annak szolgáltatásaihoz, erőforrásaihoz. Az API rendszerenként egyedi, de mindig szabványos: bárki, aki ismeri az adott rendszer API-ját, tudja is azt használni.

Egy API segítségével tehát adatokat és kéréseket küldhetünk egy másik rendszer felé, amely elvégzi a kért feladatot, majd az eredményt - szintén az API-n keresztül - visszajuttatja a kérés gazdájának.

Egy elcsépelt, de szemléletes példa az éttermi rendelés. Mi magunk vagyunk az egyik "szoftver", a konyha pedig a másik rendszer, amelytől adatot - jelen esetben ételt - szeretnénk kapni. A konyhába nem mehetünk be, ezért nem mondhatjuk el közvetlenül a szakácsnak, hogy mit szeretnénk. Helyette a pincérrel kommunikálunk, neki adjuk le a rendelést. Ő az API, ő tolmácsolja a kívánságunkat, és ő hozza ki az ételt, amikor az elkészült.

Hirdetés

Hogy a háttérben mi történik, azt sem nekünk, sem a szakácsnak nem kell tudni; nem érdekes, épp hány szakács dolgozik, nem érdekes, hogyan kell megfőzni az adott ételt, mindegy, hogy honnan származnak az alapanyagok stb. Ha van hozzáférésünk az API-hoz, jelen esetben a pincérhez, akkor minden adott ahhoz, hogy étel kerüljön az asztalra.

Ugyanezt a példát természetesen megnézhetjük netes rendeléssel is; megnyitjuk kedvenc appunkat a telefonon, kiválasztjuk az éttermet, és leadjuk a rendelést. Ebben az esetben a telefonos app egy (vagy több) API-n keresztül kommunikál az étterem számítógépével, a végeredmény pedig számunkra ugyanaz: étel kerül az asztalra.

API-k a gyakorlatban

A feljegyzések szerint az első API-t 2000-ben kezdték el használni. A salesforce.com volt az első fecske, őt követte pár hónappal később az eBay. Kettejük közül az eBay bárki által használható API-t készített azzal a céllal, hogy szolgáltatásait pillanatok alatt integrálhassa bárki saját fejlesztésű weboldalába. Azóta sok víz lefolyt a Dunán, a nyilvánosan elérhető API-k száma pedig 24 ezer fölé kúszott.

Nem túlzás tehát azt állítani, hogy az API-k elárasztották a világot. Segítségükkel jóval egyszerűbbé vált a fejlesztők feladata: egy API-val pár sornyi kód segítségével lehet komplex funkciókat integrálni bármilyen alkalmazásba. Egyszerű példa: fejlesztünk egy szoftvert vagy weboldalt, és szeretnék, ha lenne benne térképfunkció, amely mutatja a telephelyünket. Ahelyett, hogy költséges és időigényes fejlesztésbe kezdenénk, a Google API segítségével egyszerűen integrálhatjuk a térképfunkciót az oldalba. Nem lenne rossz az sem, ha a felhasználók be tudnának jelentkezni?

Semmi gond, a Facebook API-n keresztül pillanatok alatt integrálhatjuk a Bejelentkezés Facebookkal opciót is. Szeretnénk fizetési opciót is? Csak egy API kell hozzá. PayPal legyen, vagy banki szolgáltatás?

A fenti példákkal valószínűleg mindenki találkozott már; ez remekül mutatja, hogy az API-k az utóbbi tíz évben alaposan felforgatták a fejlesztési alapelveket, de hatással voltak a felhasználói szokásokra is.

Egy fitneszkarkötő például az elmentett adatokat ma már nemcsak saját ökoszisztémán belül tudja továbbítani, hanem API-k segítségével az adatokat exportálhatjuk kedvenc platformunkba is.

Típusok

Az API-kat működésük alapján több csoportba sorolhatjuk: REST, SOAP, GraphQL és RPC a főbb típusok, illetve megkülönböztethetünk még operációs rendszer szintű API-kat is.

REST

A REST (REpresentational State Transfer) API egy olyan API, amelyet adatlekérésre optimalizáltak. A kérések és válaszok jellemzően a HTTP protokoll segítségével vándorolnak a felek között. Az internetes szolgáltatások többsége ilyen API-t használ. A REST típusú API előnye a gyorsaság és a rugalmasság; utóbbi abból adódik, hogy a lekéréshez és az utasításokhoz többféle formátum is használható. HTML, JSON, XML - hogy csak néhányat említsünk.

SOAP

A SOAP (Simple Object Access Protocol) API-kat szintén adatlekéréshez használják, nevükkel ellentétben jellemzően akkor, ha komplex adathalmazzal kell dolgozni. Mégpedig azért, mert a szintén HTTP protokollon keresztül működő SOAP esetében az XML formátum nem opció, hanem követelmény. A lekérések struktúrája és az összes parancs sztenderd formátumú, ami cserébe nagyobb biztonságot nyújt. A banki tranzakciókhoz kapcsolódó API-k például SOAP típusúak, egyébként viszont a REST jóval népszerűbb.

GraphQL

Ez az API-típus relatíve új, a JSON formátumot támogatja. Nagyon úgy néz ki, hogy idővel népszerűbb lehet, mint a REST típus; a mobil API-k fejlesztésekor például előnyben részesítik a fejlesztők. Bár összetettebb utasításokkal dolgozik, ezért nehezebben programozható, de jóval precízebb (igaz, lassabb) adatlekérést tesz lehetővé. Nem ritka, hogy egy REST API-val - főleg nagyobb adatbázis esetén - csak több lekéréssel lehet a kívánt információt megkapni, a GraphQL-nél viszont minden esetben elég egyetlen lekérés.

RPC/Web API

Az RPC (Remote Procedure Call) API célja nem az adat lekérése, hanem az, hogy egy adott feladatot a kliens helyett a távoli gép végezzen el. Ebben az esetben nem feltétlenül a kényelmesség a vezető szempont, hanem a teljesítmény és az erőforrások jobb elosztása. Ha a kommunikáció HTTP protokoll segítségével, interneten keresztül történik, akkor az RPC API-ból Web API lesz. Tipikus példa a Web API-ra a Facebook login vagy a Google térképintegráció. 

OS API

Az operációs rendszerek is rengeteg API-t tartalmaznak, amelyek segítségével a szoftverek képesek például arra, hogy a hardveres erőforrásokat használják. Egy androidos program például az Android API-n keresztül kéri le a GPS-adatokat, de ugyanígy működik a Bluetooth, a Wi-Fi, a kamera, a sok szenzor használata, és még sorolhatnánk.

Magán- és nyilvános API-k

Az API-kat a felhasználás jellege szerint is csoportosíthatjuk, ebben az esetben nyílt (publikus) és zárt (privát) API-król beszélhetünk. Előbbire az egyik legjobb példa a YouTube, hiszen a videókat nemcsak a szolgáltató saját weboldalán érhetjük el, hanem rengeteg más alkalmazáson keresztül is; ezek mind API-kat használnak a YouTube funkcióinak (lejátszás, keresés, kedvencek stb.) eléréséhez. A zárt felhasználású API-kat jellemzően nagyvállalatok fejlesztik, saját részre, hogy a részlegek közötti kommunikációt, valamint együttműködést elősegítsék.

Ha tetszett a cikk, akkor érdemes megvenned a 2021/09-es PC World magazint, ugyanis telepakoltuk hasznos és érdekes tartalmakkal, ráadásul szoftverek és PC-s teljes játék járnak hozzá ajándékba. 

Komolyabban érdekel az IT? Informatikai, infokommunikációs döntéshozóknak szóló híreinket és elemzéseinket itt találod.

Hirdetés
Hirdetés

Úgy tűnik, AdBlockert használsz, amivel megakadályozod a reklámok megjelenítését. Amennyiben szeretnéd támogatni a munkánkat, kérjük add hozzá az oldalt a kivételek listájához, vagy támogass minket közvetlenül! További információért kattints!

Engedélyezi, hogy a https://pcworld.hu értesítéseket küldjön Önnek a kiemelt hírekről? Az értesítések bármikor kikapcsolhatók a böngésző beállításaiban.