Mi a kapcsolat az SDK és az API között?
A szoftverfejlesztésben, ahogy a rendszerek mérete folyamatosan növekszik, egyre fontosabbá válik a komplex rendszerek kisebb összetevőkre bontása. Ennek során a programozási felületek (interface-ek) tervezése kulcsfontosságú. A felület tervezésének elsődleges feladata a szoftverrendszer felelősségeinek ésszerű elosztása. A jó felület tervezés csökkenti a rendszer egyes részei közötti függőségeket, növeli a modulok kohézióját, miközben csökkenti a modulok közötti összekapcsoltságot, ezáltal javítva a rendszer karbantarthatóságát és bővíthetőségét. Az API, mint egyfajta felület, fontos szerepet játszik a programok közötti interakcióban, és az SDK és az API között szoros kapcsolat van.
01 API
(1) Az API fogalma
Az API, teljes nevén "Application Programming Interface" (Alkalmazás Programozási Felület), egy előre meghatározott függvények halmaza, amelyet "interfészként" kell érteni két különböző dolog összekapcsolására. Lehetővé teszi az alkalmazások és a fejlesztők számára, hogy hozzáférjenek egy szoftver vagy hardver rutinjaihoz anélkül, hogy hozzáférnének a forráskódhoz vagy megértenék a belső működés részleteit.
Valójában az API mások által előre megírt függvények, amelyek egy adott funkciót hajtanak végre. Csak követnie kell a megadott felületen a metódusokat, és át kell adnia a megadott paramétereket, és a függvény elvégzi ezeket a funkciókat.

Az "interfész" fogalmából kiindulva a számítástechnikában ez azt jelenti, hogy két különböző entitás közötti interakció helye, amely lehet két teljesen különböző rendszer vagy két kódrészlet. Ezért az interfész "I" betűjét így érthetjük. Ennek alapján az ember és a program közötti interakciót UI-nak (felhasználói felületnek) nevezzük, beleértve az összes bemeneti formát, mint például az egér, a billentyűzet, az érintőképernyő és a hangbemenet. A programok közötti interakciót pedig API-nak nevezzük, az emberen kívüli interakciók mind API-n keresztül történnek, az interakció lényege pedig az adatátvitel és a funkció aktiválása.
(2) Az API típusai
Az API-k rendszerszintű API-kra (pl. Windows, Linux, Unix stb.) és nem operációs rendszerszintű, egyéni API-kra oszthatók. A Microsoft Windows API fejlesztési modelljét számos kereskedelmi alkalmazásfejlesztő cég átvette, és bizonyos kereskedelmi alkalmazásrendszerek API függvényeit tették közzé, hogy megkönnyítsék a harmadik felek funkcióbővítését. Például a Google, az Apple és a Nokia által fejlesztett API-k.
Az API-k nyílt API-kra és privát API-kra is oszthatók. A nevükből adódóan a nyílt API egy olyan felület, amely mindenki számára nyilvános, lehetővé téve bárki számára a meghívást és a mögöttes adatok lekérését. Néha a vállalatok API-t használnak nyilvános nyílt rendszerként, azaz a vállalat meghatározza a saját rendszerfelület-szabványait, és amikor rendszerintegrációra, testreszabásra vagy programalkalmazásra van szükség, a vállalat minden tagja meghívhatja a forráskódot ezen felület szabványon keresztül, ezt a felület szabványt pedig nyílt API-nak nevezik. A privát API pedig az, amely nem áll nyitva a nyilvánosság számára.
02 SDK
(1) Az SDK fogalma
Az SDK, teljes nevén "Software Development Kit" (Szoftverfejlesztő Készlet), általában olyan fejlesztői eszközök gyűjteménye, amelyet a szoftvermérnökök használnak alkalmazásszoftverek létrehozásához egy adott csomaghoz, szoftverkerethez, hardverplatformhoz, operációs rendszerhez stb. Egyszerűbben fogalmazva, az SDK egy harmadik fél szolgáltató által biztosított eszközkészlet egy szoftvertermék egy adott funkciójának megvalósításához.
Az SDK-t általában szakmai jellegű cégek biztosítják, mint például az Android fejlesztőeszközök vagy a hardver alapú fejlesztési szolgáltatások. Vannak olyan SDK-k is, amelyek egy adott szoftverfunkcióra vonatkoznak, mint például a push technológia, a képfelismerési technológia, a mobilfizetési technológia, a hangfelismerési elemzési technológia stb. Az internet nyitottságának trendjében néhány funkcionális SDK-t termékként kezelnek.
A fejlesztőknek nem kell többé a termék minden funkcióját fejleszteniük, csak ki kell választaniuk a megfelelő és stabil SDK szolgáltatást, és kevés időt kell befektetniük egy funkció integrálására a termékbe.
(2) Az SDK és az API közötti különbség
Az SDK a fejlesztői integrációs eszköz környezetnek felel meg, míg az API az adatfelület. Az API adatok kerülnek meghívásra az SDK környezetben.
Valójában az SDK tartalmazza az API definícióját, az API pedig egy képességet, egy felület specifikációját definiálja, az SDK pedig tartalmazhatja ezt a képességet, ezt a specifikációt. De az SDK nem csak az API-t és annak megvalósítását tartalmazza, hanem egy szoftvereszközkészlet, amely számos más segítő funkciót is tartalmaz.
Az SDK tartalmazza az API használatához szükséges dokumentációt, ezért az API használatával Windows alkalmazásokat író fejlesztési módszert gyakran "SDK programozásnak" nevezik.





