Interfața de programare a aplicației
Într-un program de calculator , interfața de programare a aplicației [1] ( API ) indică un set de proceduri (în general grupate după instrumente specifice) adecvate pentru îndeplinirea unei sarcini date; deseori acest termen desemnează bibliotecile software ale unui limbaj de programare [2] .
Caracteristici
Există diverse modele de design pentru API-uri. Interfețele destinate vitezei maxime de execuție constau adesea dintr-o serie de funcții , proceduri , variabile și structuri de date . Există, de asemenea, alte modele, cum ar fi interpreții utilizați pentru a evalua expresii, cum ar fi cu ECMAScript / JavaScript . Un API bun oferă o „cutie neagră”, care este un nivel de abstractizare care permite programatorului să evite să știe cum funcționează API la un nivel inferior. Acest lucru vă permite să reproiectați sau să îmbunătățiți funcțiile din API fără a modifica codul care se bazează pe acesta.
Există două politici privind publicarea API-ului:
- Unele companii își păstrează gelos API-urile. De exemplu, Microsoft oferă API-uri oficiale numai dezvoltatorilor Xbox înregistrați. Acest lucru se datorează faptului că intenționează să restricționeze numărul de persoane care pot scrie jocuri pentru consolă pentru a limita pirateria.
- Alte companii distribuie API-urile în mod public. De exemplu, Microsoft însuși oferă publicului informații despre API-ul său Windows , inclusiv Microsoft Foundation Classes (MFC), pentru a scrie software pentru platforma Windows .
Unele API-uri, cum ar fi cele standard ale unui sistem de operare , sunt implementate ca o bibliotecă separată și distribuite cu sistemul de operare. Alte API cer editorilor de software să integreze API-ul direct în aplicație. Aceasta face o distincție suplimentară în exemplul anterior.
API-urile Microsoft Windows sunt furnizate împreună cu sistemul de operare și oricine le poate folosi. Software-ul pentru sistemele încorporate, cum ar fi consolele de jocuri, se încadrează în general în categoria în care API-urile sunt integrate cu aplicația. În timp ce documentația oficială Playstation API poate fi o lectură interesantă, este aproape inutilă fără implementarea corespunzătoare sub forma unei biblioteci separate sau a unui kit pentru dezvoltatori.
Un API care nu necesită plata taxelor pentru acces și utilizare este denumit „deschis”. API-urile furnizate de software-ul gratuit , cum ar fi software-ul distribuit sub licența GPL , sunt deschise prin definiție, deoarece puteți accesa sursa software-ului și puteți înțelege cum funcționează. Chiar dacă există o „ implementare de referință ” pentru un API (cum ar fi Microsoft Windows pentru API-ul Windows ), nu există nimic care să împiedice crearea unei implementări alternative. De exemplu, majoritatea API-ului Windows poate fi furnizat pe un sistem Unix prin software-ul numit Wine .
În general, analiza implementării unui API pentru a produce unul compatibil este o încălcare a legii. Această tehnică se numește inginerie inversă . Situația juridică în aceste cazuri este ambiguă, deci este mai bine să abordăm problema înainte de a începe activitatea de inginerie inversă. De exemplu, un API poate conține el însuși un brevet .
Scop
Scopul este de a obține o abstracție de nivel superior, de obicei între hardware și programator sau între software de nivel scăzut și înalt , simplificând astfel munca de programare . De fapt, API permite programatorilor să evite rescrierea tuturor funcțiilor necesare programului de fiecare dată de la zero, adică de la un nivel scăzut, încadrându-se astfel în conceptul mai larg de reutilizare a codului . Prin urmare, API-urile în sine reprezintă un nivel intermediar de abstractizare: software-ul care furnizează un anumit API se numește implementare API.
Posix
Deoarece există multe variante de API, un proiect a fost creat în 1985 pentru a crea un standard. Familia care cuprinde aceste standarde ia numele de Posix (acronim pentru „Portable Operating System Interface for Unix”), al cărui nume a fost creat de Richard Stallman după solicitarea IEEE pentru un nume ușor de memorat.
Exemplu de utilizare
Vă puteți gândi la o aplicație care scrie cuvintele „ Hello world ” pe un ecran cu diferite niveluri de abstractizare:
- Scrieți totul singur:
- Desenați formele literelor H, e, l, l, o, W, o, r, l, d pe o foaie de hârtie.
- Pregătiți o matrice de pătrate alb-negru având forma fiecărei litere
- Vino cu o modalitate de a programa CPU - ul pentru a plasa această matrice în memoria tampon a plăcii video .
- Pregătiți placa video pentru a genera semnalul corect din conținutul bufferului de cadre .
- Utilizați un sistem de operare pentru a efectua o parte a sarcinii:
- Încărcați în memorie o structură de date numită „font” furnizată de sistemul de operare.
- Faceți ca sistemul de operare să afișeze o fereastră goală.
- Solicitați sistemului de operare să deseneze textul „Hello World” pe fereastră folosind fontul încărcat.
- Utilizați o aplicație (care la rândul său folosește sistemul de operare) pentru toate lucrările:
- Scrieți un document HTML care să conțină cuvintele „Hello World”.
- Deschideți documentul cu un browser web .
Evident, abordarea de la primul nivel necesită mulți pași și fiecare dintre aceștia este mult mai complex decât cei ai nivelurilor ulterioare. Un alt dezavantaj al primei abordări este că nu este practic să o utilizați dacă trebuie să afișați o anumită cantitate de informații pe ecran; cu a doua abordare operația este mult mai simplă, iar în a treia este suficient să scrieți „Hello World”. De obicei, utilizarea API-urilor de nivel superior implică o anumită pierdere de flexibilitate; de exemplu, ar putea fi foarte dificil la nivelul browserului web să rotiți textul cu margini intermitente în jurul unui punct, în timp ce această sarcină ar putea fi realizată cu ușurință la un nivel inferior. Această diferență este un exemplu tipic de compromis care poate fi întâlnit folosind un API.
Exemple API
- Interfața pentru apeluri către BIOS-ul computerului
- Modele de obiecte de document ale diferitelor aplicații, cum ar fi HTML
- Specificația unică UNIX
- API-ul Windows al Microsoft
- API-ul Java 2 Enterprise Edition Java EE
- Interfața ASPI pentru dispozitivele SCSI
- API-urile Carbon și Cocoa pentru Macintosh macOS Server
- Serviciu API și Web
- Arhitectura comună a solicitantului de obiecte ( CORBA )
- API-uri Java pentru rețele integrate ( JAIN )
- Protocol simplu de gestionare a rețelei (SNMP )
- Plug and Play universal ( UPnP )
- API-uri Google de la Google Inc.
- API-uri Mantle , de nivel scăzut, dezvoltate de AMD ca alternativă la DirectX și OpenGL
- Java Telephony API , Java API pentru gestionarea centrelor de apel distribuite.
Notă
- ^ În italiană „interfață de programare a aplicației”.
- ^ (EN) Tutorial: Apelarea API-urilor Windows (Visual Basic) , pe Docs.Microsoft.com, 20 iulie 2015. Accesat la 13 februarie 2019.
Elemente conexe
linkuri externe
- Interfață de programare a aplicației , pe Sapienza.it , De Agostini .
Controlul autorității | LCCN (EN) sh98004527 · GND (DE) 4430243-5 · BNF (FR) cb13337425v (data) |
---|