API-First
Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |
Az API-First vagy Contract First egy szoftverfejlesztési koncepció, melynek célja különböző, egymással kommunikáló szoftverek fejlesztésének elősegítése. A megközelítés lényege, hogy először a szoftverek kommunikációját, protokollját határozzuk meg (ez az ún. „contract”), majd pedig ehhez fejlesztjük le az egyes részszoftvereket. A „contract” (szerződés) itt részben a szoftverrészek közti kommunikáció specifikációja, részben pedig az őket fejlesztő munkacsoportok közti megállapodást is jelent.
Történet, okok
[szerkesztés]Egymással kommunikáló szoftverek már az „informatikai ősidőkben”, kb. a 60-as évektől fogva léteznek. Az Internet fejlődése körülbelül a 2000-es évek vége óta a következő változásokhoz vezetett:
- Az egyes, egymással kommunikáló szoftverelemek igen különböző nyelveket, szabványokat használnak (például Java a szerveroldalon és JavaScript a felhasználói PC-ken).
- Az egyes szoftverelemek fölötti kontroll gyakran korlátolt (például még a Google sem tudja garantálni, hogy a felhasználók frissítik-e a Gmail appjukat).
- A szoftverek különböző komponenseit külön munkacsoportok írják, kommunikációjuk nem mindig lehetséges, általában szervezeti vagy időbeli korlátok miatt.
- Az egyes részszoftverek munkaóraigénye gyakran igen nagy, komplex vállalati struktúrák szervezik őket.
- Ugyanakkor viszont az évtizedek alatt nagy tapasztalat gyűlt össze a szoftverfejlesztés és projektmenedzsment vonalon.
Az „API-First” kialakulásához az a megfigyelés vezetett, hogy az elkészülő, több szoftver együttműködésére alapuló szoftvertermék minősége jobb, és a fejlesztési költségek alacsonyabbak, amennyiben a kommunikációjukat, vagy legalábbis annak belátható részét, még a tervezési fázis legelején meghatározzuk.
Bevezetés
[szerkesztés]Két alapvető projektmenedzsment szempontot kell számon tartani:
- Mivel egymással kommunikáló, de minden szempontból lényegesen különböző szoftverekről van szó, valamiféle, a kommunikációjukra vonatkozó közös tudásnak léteznie kell már a fejlesztés megkezdése előtt.
- Mivel pedig ez a közös tudás természetéből adódóan nem lehet teljes (számos probléma, változtatási igény csak a tervezés/fejlesztés későbbi fázisaiban merül fel), a lehető leghamarabb és a lehető legteljesebb contract létrehozására van szükség.
Előnyök, következmények:
- Ami a contractba nem kerül bele, az implementációs fázisból is kimarad. Ebből kifolyólag hamarabb érhető el a teljes szoftverrendszer egy legalább részlegesen működő változata.
- Mivel az implementáció részletei a contract létrehozásakor még nem ismertek, az alapvetően a tények alapján épül fel, „tiszta lesz” - implementációs részletkérdések még nem befolyásolják.
- A contract egy formalizált, valamint programnyelvtől- és keretrendszertől független dokumentum, ezért annak minden egyes használója alkalmazhatja a saját, rendelkezésre álló fejlesztéstámogató eszközeit (kódgenerálás, automatizált tesztelés, mock adat generálás stb.) a fejlesztés gyorsítására.
Open API / Swagger
[szerkesztés]A mai gyakorlatban túlnyomórészt REST, ritkábban SOAP protokollt használnak. Az OpenAPI (korábbi nevén Swagger) egy nyílt szabvány a REST alapú kommunikáció formalizálására.
Források
[szerkesztés]- API-First bevezető (angol)