Api, Api, API! Ez hogyan működik? És miért kerül ennyibe?

Dátum

Megosztás

Ha kerültetek már olyan helyzetbe, ahol szoftverfejlesztési vagy programozási kérdések merültek fel egy alkalmazással, webshoppal vagy digitális fizetőeszköz-rendszer bevezetésével kapcsolatban, akkor valószínűleg találkoztatok már az “API” kifejezéssel. De miről is van szó pontosan? 

Mi az API? Hogyan használjuk az API-t?

Az API, vagyis az Application Programming Interface olyan eszköz, amely lehetővé teszi a szoftverek kommunikációját egymással. Ezek standardizált protokollokat használnak, amelyek meghatározzák, hogyan kell kéréseket küldeni és fogadni. Ez a megoldás lehetővé teszi a fejlesztők számára, hogy különböző szolgáltatásokat könnyen integráljanak alkalmazásaikba anélkül, hogy nulláról kellene felépíteniük olyan funkciókat, amiket más fejlesztők már “feltaláltak”.A mai fejlesztői világban ez nem csak, hogy megkönnyíti az új funkciók beépítését, de lehetőséget ad arra is, hogy meglévő fejlesztésekből plusz bevételt szerezzünk azok publikussá tételével. Na, de ki fizet ezért, mennyit és milyen modellekkel kell tisztában lenniük a szolgáltatóknak, illetve felhasználóknak?

API-k a mindennapokban

Egy webshopos rendelés folyamatának példája lehet nekünk segítségre a pontosabb megértésben:

  • Vásárlás folyamata: Amikor egy vevő megvesz valamit egy webshopban, számos API-hívás történik:
    1. A webshop API-kérést küld a raktárkészlet-kezelő rendszernek, hogy ellenőrizze a termék elérhetőségét.
    2. A fizetésnél a webshop API-n keresztül kommunikál a fizetési szolgáltatóval (pl. Simple Pay).
    3. A sikeres fizetés után API-hívás megy a számlázó rendszerhez (pl. Billingo) a számla kiállításához.
    4. Végül egy API-kérés mehet a futárszolgálat felé a szállítás megszervezéséhez.

Bontsuk le ennek a folyamatnak egy pontját kicsit részletesebben.

Vegyük a Billingo online számlázó rendszerét, annak támogatási dokumentumát követve. Amikor a webshopunk automatikusan számlát akar kiállítani egy vásárlás után, tulajdonképpen felhívja a Billingo digitális rendszerét. Ez egy API-hívás a ‘/documents’ végpontra. A webshopunk ilyenkor elküldi az összes szükséges adatot, mint például, hogy ki a vevő, mit vett, mennyiért – mindezt egy jól strukturált JSON formátumban, amit a Billingo rendszere könnyedén megért. A Billingo elkészíti a számlát és másodpercek törtrésze alatt, teljesen automatikusan válaszol a számla részleteivel. Jó, mi? Na de, ha a webshopunk naponta több ezer ilyen kérést küld, az bizony megterheli a Billingo szervereit, ezért kell fizetni az API használatáért. De cserébe webshop tulajdonosként hátradőlhetünk, mert a számlázás magától működik, emberi beavatkozás nélkül. Ez az automatizálás ereje.

Miért kerül pénzbe az API használata?

Oké, szóval milyen erőforrásokat is igényelnek ezek az automatizálási megoldások? Hiszen az már biztos, nem a régi világ van, amiben sok ember szocializálódott, hogy a szoftver ingyenes, az interneten pedig nem fizetünk… 

Minden egyes alkalommal, amikor használjuk az API-kat, energiát és erőforrásokat fogyasztanak – processzoridőt, memóriát. És ha sokan hívnak egyszerre? Káosz! Ezért kellenek erős (drága!) szerverek, hogy bírják a terhelést. De ez még nem minden! A szerver működtetést pedig, valamelyik felhő szolgáltatónál, mint az AWS vagy az Azure, kell megoldani. Ráadásul minden adatot, amit kezelnek, el is kell valahol tárolni. Szóval a biztonságot se felejtsük el! Az API-k gyakran nagyon érzékeny adatokhoz férnek hozzá – olyan ez, mintha a bankkártyánk PIN kódját telefonon adnánk meg rendelésnél. Ezért komplex biztonsági rendszerekre van szükség, meg folyamatos ellenőrzésekre, hogy senki ne tudjon visszaélni velük.

Nem olcsó móka. De cserébe gyors és hatékony kiszolgálást kapunk, amiről régen álmodni sem mertünk.

Árazási modellek

  • Pay-as-you-go (használat alapú fizetés)
    • Minden egyes API-hívásért meghatározott díjat számítanak fel, így ez a modell rugalmas megoldást kínál, különösen azok számára, akik nem tudják előre pontosan, mennyit fognak használni. (Egyébként legtöbb esetben a szolgáltató és felhasználó részéről is ez a legoptimálisabb modell, mert sokszor lutri lehet az előre meghatározott használatok száma, és akkor vagy tovább kell vinni a ki nem használt hívásokat, vagy rá kell fizetni túlterhelés esetén.)
  • Előfizetéses modellek
    • Havi vagy éves díj ellenében meghatározott számú API-hívást lehet végezni. Ez a modell stabilabb költségtervezést biztosít, mivel előre kiszámíthatóvá teszi a kiadásokat. Gyakran több szintet is kínálnak, amelyek eltérő mennyiségű hívást és különböző szolgáltatásokat tartalmaznak.
  • Freemium
    • Ha kipróbálnátok az API alapvető képességeit anélkül, hogy azonnali költségeket vállalnátok. Amennyiben az igényeitek növekednek, választhatjátok a fizetős opciókat. (Ebben a modellben működik a sokak által ismert Zapier és Make automatizációs platformja is.)

API vs. weboldal betöltés

Van itt még egy érdekes kérdés, ami pár emberben jogosan merülhet fel. Adatokat lehívni, küldeni – ilyeneket folyamatosan csinálunk az interneten, mégsem mindig merülnek fel plusz költségek. Ezeket a különbségeket pedig az alábbiak szerint különíthetjük el:

Erőforrás-igények

  • Weboldal: Általában egyszeri, nagyobb adatmennyiség letöltése (HTML, CSS, képek).
  • API-hívás: Gyakran kisebb adatmennyiség, de sokkal gyakoribb és célzottabb kérések. Ez folyamatos és dinamikus terhelést jelent a szerver számára.

Adatmennyiség és feldolgozás

  • Weboldal: A böngésző végzi a megjelenítést, a szerver főleg statikus tartalmat szolgál ki. Az adatok letöltése után a böngésző felel a megjelenítésért és az interakciók kezeléséért.
  • API: A szerver végzi az adatok feldolgozását, és csak a kért információt küldi vissza, ami nagyobb szerver oldali terhelést jelent.

Lényegében, az API-k gép-gép közötti kommunikációra vannak optimalizálva, strukturált adatokkal. Így a céljuk, hogy automatizált módon, programozott kérések útján szolgáltassanak adatokat és funkciókat más szoftverek számára. Lehetővé téve számunkra, hogy vállalkozásunk gyorsan alkalmazkodjon az új technológiákhoz és piaci igényekhez, anélkül, hogy minden funkciót házon belül kellene fejlesztenünk.

Fontos elmondani, hogy ne féljünk tárgyalni a szolgáltatókkal egyedi árazásról, ha jelentős a forgalmunk. És mindig tartsuk szemmel az API-használatunkat, a hozzá kapcsolódó költségeket – ezek a digitális rezsiszámláink, amiket okos tervezéssel jelentősen csökkenthetünk.

Kertvéllesy András
Kertvéllesy András
Négy ország felsőoktatási intézményeiben, három nyelven tanultam írni és olvasni. Hiszem, hogy a világ megismerésére az egyik legjobb módszer a színháztörténet és az önreflexió. Analitikus típus vagyok: szeretek többet gondolkozni, mint amennyi időbe kerül azt elmondani – remélem, hogy a Minneren, pont emiatt kerültök majd előnybe.