Interfície de programació d'aplicacions

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
Interfície de programació d'aplicacions
Interfície de programació d'aplicacions

En un programa d'ordinador , la interfície de programació d'aplicacions [1] ( API ) indica un conjunt de procediments (generalment agrupats per eines específiques) adequats per dur a terme una tasca determinada; sovint aquest terme designa les biblioteques de programari d'un llenguatge de programació [2] .

Característiques

Hi ha diversos models de disseny per a les API. Les interfícies destinades a la màxima velocitat d’execució consisteixen sovint en una sèrie de funcions , procediments , variables i estructures de dades . També hi ha altres models, com ara intèrprets que s’utilitzen per avaluar expressions com ara amb ECMAScript / JavaScript . Una bona API proporciona una "caixa negra", que és un nivell d'abstracció que permet al programador evitar saber com funciona l'API a un nivell inferior. Això us permet redissenyar o millorar les funcions de l'API sense canviar el codi que en depèn.

Hi ha dues polítiques relatives a la publicació de l'API:

  1. Algunes empreses mantenen gelosament les seves API. Per exemple, Microsoft només proporciona API oficials als desenvolupadors de Xbox registrats. Això es deu al fet que pretén restringir el nombre de persones que poden escriure jocs per a la consola per limitar la pirateria.
  2. Altres empreses distribueixen les API públicament. Per exemple, la mateixa Microsoft proporciona al públic informació sobre la seva API de Windows , incloses les Microsoft Foundation Classes (MFC), per escriure programari per a la plataforma Windows .

Algunes API, com ara les estàndard d’un sistema operatiu , s’implementen com una biblioteca independent i es distribueixen amb el sistema operatiu. Altres API requereixen que els editors de programari integrin l'API directament a l'aplicació. Això fa una distinció addicional en l'exemple anterior.

Les API de Microsoft Windows es proporcionen amb el sistema operatiu i qualsevol persona les pot utilitzar. El programari per a sistemes incrustats, com ara les consoles de jocs, generalment pertanyen a la categoria en què les API s’integren amb l’aplicació. Tot i que la documentació oficial de l’API de Playstation pot ser una lectura interessant, és pràcticament inútil sense la implementació corresponent en forma de biblioteca independent o kit de desenvolupadors.

Una API que no requereix el pagament de taxes pel seu accés i ús es diu "oberta". Les API proporcionades pel programari lliure , com ara el programari distribuït amb llicència GPL , estan obertes per definició, ja que podeu accedir a la font del programari i entendre com funciona. Fins i tot si hi ha una " implementació de referència " per a una API (com Microsoft Windows per a l' API de Windows ), no hi ha res que impedeixi la creació d'una implementació alternativa. Per exemple, la majoria de l'API de Windows es pot proporcionar en un sistema Unix mitjançant un programari anomenat Wine .

En general, analitzar la implementació d'una API per produir una compatible és una violació de la llei. Aquesta tècnica s’anomena enginyeria inversa . La situació legal en aquests casos és ambigua, de manera que és millor abordar el problema abans de començar l’activitat d’enginyeria inversa. Per exemple, una API pot contenir una patent .

Propòsit

L’objectiu és obtenir una abstracció de nivell superior, generalment entre el maquinari i el programador o entre el programari de baix i alt nivell , simplificant així el treball de programació . De fet, l’API permet als programadors evitar reescriure totes les funcions necessàries per al programa cada vegada des de zero, és a dir, des d’un nivell baix, quedant així dins del concepte més ampli de reutilització de codi . Per tant, les pròpies API representen un nivell intermedi d’abstracció: el programari que proporciona una determinada API s’anomena implementació de l’API.

Posix

Com que hi ha moltes variants d’APIs, el 1985 es va crear un projecte per crear un estàndard. La família que engloba aquests estàndards pren el nom de Posix (acrònim de "Portable Operating System Interface for Unix"), el nom del qual va ser creat per Richard Stallman després de la sol·licitud de l'IEEE d'un nom fàcil de memoritzar.

Exemple d'ús

Podeu pensar en una aplicació que escrigui les paraules " Hello world " en una pantalla amb diversos nivells d'abstracció:

  1. Escriviu-ho tot vosaltres mateixos:
    1. Dibuixa les formes de les lletres H, e, l, l, o, W, o, r, l, d en un full de paper.
    2. Prepareu una matriu de quadrats en blanc i negre que tinguin la forma de cadascuna de les lletres
    3. Aneu amb una manera de programar la CPU per col·locar aquesta matriu al buffer de fotogrames de la targeta de vídeo .
    4. Prepareu la targeta de vídeo per generar el senyal correcte a partir del contingut de la memòria intermèdia de trames.
  2. Utilitzeu un sistema operatiu per realitzar part de la tasca:
    1. Carregueu a la memòria una estructura de dades anomenada "font" proporcionada pel sistema operatiu.
    2. Feu que el sistema operatiu mostri una finestra en blanc.
    3. Feu que el sistema operatiu dibuixi el text "Hello World" a la finestra mitjançant el tipus de lletra carregat.
  3. Utilitzeu una aplicació (que al seu torn utilitza el sistema operatiu) per a tota la feina:
    1. Escriviu un document HTML que contingui les paraules "Hello World".
    2. Obriu el document amb un navegador web .

Viouslybviament, l’enfocament del primer nivell requereix molts passos i cadascun d’aquests és molt més complex que els dels nivells posteriors. Un altre desavantatge del primer enfocament és que no és pràctic utilitzar-lo si necessiteu mostrar una certa quantitat d'informació a la pantalla; amb el segon enfocament, l'operació és molt més senzilla i en el tercer n'hi ha prou amb escriure "Hello World". Normalment, utilitzar API de nivell superior implica una certa pèrdua de flexibilitat; per exemple, pot ser molt difícil a nivell del navegador web girar text amb vores intermitents al voltant d'un punt, mentre que aquesta tasca es podria fer fàcilment a un nivell inferior. Aquesta diferència és un exemple típic de compensació que es pot trobar mitjançant una API.

Exemples d'API

Nota

  1. ^ En italià "interfície de programació d'aplicacions".
  2. ^ (EN) Tutorial: trucar a les API de Windows (Visual Basic) , a Docs.Microsoft.com, 20 de juliol de 2015. Obtingut el 13 de febrer de 2019.

Articles relacionats

Enllaços externs

Control de l'autoritat LCCN (EN) sh98004527 · GND (DE) 4430243-5 · BNF (FR) cb13337425v (data)