API

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. december 23-án felülvizsgált verziótól ; az ellenőrzések 39 szerkesztést igényelnek .

Az API ( IPA : [ ˌ e ɪ . p i ˈ a ɪ ]; angol rövidítés. Application Programming Interface [ 1 ] ) egy számítógépes program másokkal való interakciójának leírása. Általában valamilyen internetes protokoll (például SCIM [2] ), szoftver keretrendszer ( keretrendszer [3] ) vagy operációs rendszer funkcióhívási szabvány [4] leírásában szerepel . Gyakran külön szoftverkönyvtárral valósítják meg vagy operációs rendszer szolgáltatás . A programozók használják mindenféle alkalmazás írásakor .

Egyszerűen fogalmazva, ez olyan összetevők halmaza, amelyekkel egy számítógépes program (bot vagy webhely) egy másik programot használhat.

Időpont

Az API (Application Programming Interface) leegyszerűsíti a programozási folyamatot az alkalmazások építése során azáltal, hogy elvonatkoztatja a mögöttes megvalósítást, és csak azokat az objektumokat vagy műveleteket biztosítja, amelyekre a fejlesztőnek szüksége van. Ha egy e-mail kliens grafikus felhasználói felülete biztosít a felhasználó számára egy gombot, amely végigmegy az új e-mailek lekéréséhez és kiemeléséhez szükséges összes lépésen, akkor a File I/O API olyan funkciót tud adni a fejlesztőnek, amely átmásolja a fájlt egyik helyről a másikra. anélkül, hogy a fejlesztőtől megkövetelné a fájlműveletek megértését.a színfalak mögött zajló rendszerek. [5]

API, mint az alkalmazásintegráció eszköze

Ha egy programot (modult, könyvtárat) fekete doboznak tekintünk , akkor az API olyan „fogantyúk” halmaza, amelyek a doboz felhasználója számára elérhetőek, és amelyeket ő forgathat és húzhat.

A szoftverkomponensek API-kon keresztül kölcsönhatásba lépnek egymással. Ebben az esetben a komponensek általában hierarchiát alkotnak - a magas szintű komponensek az alacsony szintű komponensek API-ját használják, ezek pedig a még alacsonyabb szintű komponensek API-ját.

Ennek az elvnek megfelelően épülnek fel az interneten keresztüli adatátviteli protokollok . A szabványos protokollverem ( OSI hálózati modell ) 7 réteget tartalmaz (a fizikai bitátviteli rétegtől az alkalmazásprotokoll rétegig, mint például a HTTP és az IMAP ). Mindegyik réteg az előző („alsó”) adatátviteli réteg funkcióit használja, és a kívánt funkcionalitást biztosítja a következő („felső”) rétegnek.

A protokoll fogalma jelentésében közel áll az API fogalmához. Mindkettő a funkcionalitás absztrakciója, csak az első esetben az adatátvitelről, a másodikban pedig az alkalmazások interakciójáról beszélünk.

A függvény- és osztálykönyvtár API tartalmazza a függvények aláírásainak és szemantikájának leírását .

Funkció aláírása

A függvényaláírás egy általános függvénydeklaráció része, amely lehetővé teszi a fordítók számára, hogy azonosítsák a függvényt többek között. A különböző programozási nyelveknek eltérő elképzeléseik vannak egy függvény aláírásáról, ami szintén szorosan összefügg a funkciótúlterhelés lehetőségeivel ezekben a nyelvekben.

Néha különbséget tesznek a hívásaláírás és a függvénymegvalósítási aláírás között . A hívásaláírást általában a függvényhívás szintaktikai felépítése szerint állítják össze, figyelembe véve a függvény hatókörének aláírását, a függvény nevét, a hívásban szereplő argumentumtípusok aktuális típusát, valamint a függvény típusát. eredmény. Az implementációs aláírás általában tartalmaz néhány elemet a függvénydeklaráció szintaktikai felépítéséből: a függvény hatókörének specifikálóját, a nevét és a formális argumentumtípusok sorozatát.

Például a C++ programozási nyelvben egy egyszerű függvényt a fordító egyedileg azonosít a neve és argumentumtípusainak sorrendje alapján, amely az adott nyelven a függvény aláírását alkotja. Ha a függvény valamelyik osztály metódusa, akkor az osztály neve is részt vesz az aláírásban.

A Java programozási nyelvben a metódus aláírása a neve és a paramétertípusok sorrendje; a visszaadott érték típusa nem szerepel az aláírásban. [6]

Függvényszemantika

Egy függvény szemantikája annak leírása, hogy egy adott függvény mit csinál. A függvény szemantikája magában foglalja annak leírását, hogy mi a függvény kiértékelésének eredménye, hogyan és mitől függ ez az eredmény. Általában a végrehajtás eredménye csak a függvényargumentumok értékétől függ, de egyes modulokban van egy állapotfogalom. Ekkor ettől az állapottól függhet a függvény eredménye, ráadásul az eredmény állapotváltozás is lehet. A függőségek és változások mögött meghúzódó logika a függvény szemantikájához kapcsolódik. A függvények szemantikájának teljes leírása a függvény végrehajtható kódja vagy a függvény matematikai meghatározása.

operációs rendszer API-k. API sokféleséggel kapcsolatos problémák

Szinte minden operációs rendszer ( UNIX , Windows , OS X , Linux stb.) rendelkezik API-val, amellyel a programozók alkalmazásokat hozhatnak létre az adott operációs rendszerhez. Az operációs rendszerek fő API-ja rendszerhívások halmaza .

A szoftveriparban fontos szerepet játszanak a szabványos funkcionalitást szolgáló közös szabványos API-k, amelyek biztosítják, hogy minden közös API-t használó program egyformán jól, vagy legalábbis a megszokott módon működjön. A GUI API-k esetében ez azt jelenti, hogy a programok hasonló felhasználói felülettel rendelkeznek, ami megkönnyíti az új szoftvertermékek megismerését.

Másrészt a különböző operációs rendszerek API-inak különbségei nagyon megnehezítik az alkalmazások platformok közötti portolását. Különféle módszerekkel lehet megkerülni ezt a bonyolultságot – "köztes" API-k írása (API-k grafikus felületekhez wxWidgets , GTK stb.), olyan könyvtárak írása, amelyek az egyik operációs rendszer rendszerhívásait egy másik operációs rendszer rendszerhívásaira képezik le (futási környezetek, például Wine , cygwin stb.), kódolási szabványok bevezetése programozási nyelvekben (például a C szabványkönyvtár ), értelmezett nyelvek írása, amelyek különböző platformokon implementálhatók ( sh , Python , Perl , PHP , Tcl , Javascript , Ruby stb.).

Ezenkívül egy programozónak gyakran több különböző API-ja van ugyanazon eredmény eléréséhez. Ebben az esetben az egyes API-kat általában alacsonyabb absztrakciós szintű szoftverösszetevők API-jaival valósítják meg.

Például: annak érdekében, hogy a böngészőben a " Hello, world!" ”, csak egy HTML dokumentumot kell létrehozni minimális címmel és egyszerű törzstel, amely tartalmazza az adott karakterláncot. Amikor a böngésző megnyitja ezt a dokumentumot , a böngészőprogram átadja a fájlnevet (vagy egy már megnyitott fájlleírót ) a HTML-dokumentumokat feldolgozó könyvtárnak, amely viszont az operációs rendszer API használatával elolvassa ezt a fájlt és megérti az eszközét. , majd szekvenciálisan hívja meg a szabványos grafikus primitívek könyvtárának API-ját olyan műveletekhez, mint az "ablak törlése", "írja a "Hello, world!" a kiválasztott betűtípusba. Ezen műveletek végrehajtása során a grafikus primitív könyvtár a megfelelő kérésekkel az ablak interfész könyvtárához fordul, ez a könyvtár már az operációs rendszer API-jához fordul, hogy adatokat írjon a videokártya pufferébe .

Ugyanakkor szinte minden szinten több lehetséges alternatív API létezik. Például: a forrásdokumentumot nem HTML-ben írhatnánk, hanem LaTeX -ben, megjelenítésre bármilyen böngészőt használhatunk. Ráadásul a különböző böngészők más-más HTML-könyvtárat használnak, ráadásul mindez különböző primitív könyvtárak segítségével és különböző operációs rendszereken is felépíthető.

A meglévő réteges API-rendszerek fő összetettségei a következők:

A leghíresebb API-k

operációs rendszer
Grafikus interfészek
Hang interfészek
Hitelesítési rendszerek

Web API

Webfejlesztésben használatos - általában tartalmaz egy bizonyos HTTP -kérelmeket, valamint a HTTP-válaszok szerkezetének meghatározását, amelyek kifejezésére XML- vagy JSON -formátumot használnak .

A Web API szinte egyet jelent a webszolgáltatással, bár a legutóbbi Web 2.0 trend a SOAP -ról a REST kommunikációra vált. Azok a webes felületek, amelyek több szolgáltatás kombinációját biztosítják az új alkalmazásokban, mashupoknak nevezik.

Példák: MediaWiki API

Lásd még

Jegyzetek

  1. Lefordítva: "alkalmazásprogramozási felület", "alkalmazásprogramozási felület". Gyakran használják az egyszerűsített átírt szlengnevet [ apiʹ ]. Rövidített fordítási lehetőségeket is használnak - „alkalmazási felület”, „szoftver interfész”.
  2. Rendszer a tartományok közötti identitáskezeléshez: Protocol draft-ietf-scim-api-19 . Letöltve: 2018. október 12. Az eredetiből archiválva : 2017. július 7.
  3. Spring Framework 5.3.1 API . Letöltve: 2018. október 12. Az eredetiből archiválva : 2018. október 10.
  4. A Linux kernel felhasználói tér API útmutatója . Letöltve: 2018. október 12. Az eredetiből archiválva : 2018. október 12.
  5. Clarke, Steven Measuring API Usability . Dr. Dobb's (2004). Letöltve: 2021. július 9. Az eredetiből archiválva : 2022. március 3.
  6. Java nyelvi specifikáció. fejezet 8.4.2. "Módszer aláírása" . Java nyelvi specifikáció . docs.oracle.com. Letöltve: 2020. február 24. Az eredetiből archiválva : 2020. május 3.