Interfície de programació d'aplicacions: diferència entre les revisions

Contingut suprimit Contingut afegit
Cap resum de modificació
Cap resum de modificació
Línia 1:
{{vegeu (des)|el programari informàtic}}
Una '''Interfície de Programació d'Aplicacions''' (Application Programming Interface, API) és una interfície que especifica com diferents components de programes informàtics haurien d'interactuar. Dit d'una altra manera, és un conjunt d'indicacions, en quant a funcions i procediments, ofert per una [[biblioteca informàtica]] (o [[programoteca)]] per ser utilitzat per un altre programa per interactuar amb el programa en qüestió. O, dit d'encara una altra manera, és un conjunt de declaracions que defineix el contracte d'un component informàtic amb qui farà ús dels seus serveis.
 
Al moment de construir un sistema informàtic o [[biblioteca de programacióinformàtica]], per donar suport a les invocacions a serveis fetes per un altre programa, cal oferir una API, tant als programes externs (que podran usar els serveis oferts), com al programador (que disposa del manual indispensable per poder treure el màxim suc del component que ha adquirit).
 
Sovint, una API és una part del Kit de Desenvolupament d'una Aplicació ([[SDK]]).
Línia 10:
En aquesta abstracció apareixen la llista de variables públiques, funcions i procediments (o mètodes, si parlem de programació orientada a objectes), que el component informàtic ofereix.
 
Les API són diferents de les [[Interfícieinterfície binària d'aplicació|interfícies binàries d'aplicació]], en què les API estan especificades en termes de [[Llenguatgellenguatge de programació]] que pot ser compilat quan es construeix l'aplicació, en lloc de ser una descripció explícita de baix nivell de com es distribueixen les dades en memòria.
 
Alguns exemples d'API conegudes són:
Línia 20:
El terme API pot ser usat segons dos significats relacionats:
* Una interfície coherent, consistent en diverses classes o diversos conjunts de funcions o procediments relacionats
* Un simple punt d'entrada, com ara un métodemètode, una funció o un procediment.
 
== Models de disseny ==
Hi ha diversos models de disseny per a un API. Les interfícies que persegueixen la màxima velocitat d' [[execució (informàtica)|execució]] sovint consisteixen en un conjunt de [[Subrutina|funcions]], [[procediment]]s, [[Variable en programació|variables]] i [[estructura de dades|estructures de dades]]. Tanmateix, també hi ha d'altres models - com ara l' [[intèrpret (informàtica)|intérpretintèrpret]] usat per avaluar expressions en [[ECMAScript]]/[[JavaScript]] o a la capa d'abstracció- que allibera el programador de la necessitat de conèixer com es relacionen els nivells més baixos d'abstracció amb les funcions de l'API. Això possibilita el redisseny o millora de les funcions de l'API sense afectar el codi que n'usa els serveis.
 
Algunes API, com ara les estàndards d'un [[sistema operatiu]], estan implementades com a [[biblioteca informàtica|biblioteques]] de codi a part que es distribueixen juntament amb el sistema operatiu. D'altres requereixen distribuïdores de [[programari]] per poder integrar la funcionalitat de l'API directament a l'aplicació. Això afegeix una nova distinció als exemples dalt esmentats. L'[[API de Windows]] ve amb el sistema '''operatiu''', perquè qualsevol la pugui usar. El softwareprogramari pels [[sistema incrustat|sistemes incrustats]], com puguipodria ser una [[consola de videojoc]], cau generalment a la categoria d'aplicació- integrada, en lloc de la d'aplicació que ofereix serveis. Mentre un document oficial de l'API de la PlayStation pot ser interessant de llegir, és poc útil sense la seva corresponent [[implementació]], com a [[biblioteca informàtica|biblioteca]] o [[SDK|kit de desenvolupament de l'aplicació]]
 
Una API sobre la que no es carreguen drets d'autor per l'accés i l'ús, és anomenada "oberta".<ref>Totes les API distribuïdes sota la [[GNU General Public License]] estan obertes per definició. La [[glibc|GNU C library]] n'és un exemple</ref> I tot i que sovint les API són proveïdes amb "[[implementació de referència|implementacions de referència]]" autoritzades (com fa el [[Windows de Microsoft]] per l'[[API del Win32]]), poden aparèixer implementacions alternatives. Per exemple, la major part de l'API de Win32 pot ser proveïda sota un sistema [[UNIX]] usant un softwareprograma anomenat [[Wine]].
 
Als països amb patents de softwareprogramari, és legalment recomanable analitzar implementacions de l'API per produir-ne una de compatible. A aquesta tècnica l'anomenem [[enginyeria inversa]] orientada a la [[interoperabilitat]]. Encara així, la situació legal continua sent sovint ambígua, de manera que cal tenir cura i comptar amb assessorament legal, abans de tirar endavant aquesta tècnica. Per exemple, mentre que les API no tenen un statusestatus legal clar, podrien incloure [[patent]]s que no haurien de ser usades fins que, i si, qui atresora la patent dóna el seu permís, si s'escau. Als països on no s'atorguen patents de softwareprogramari, l'única protecció que pot ser aplicada a una API, és la deldels drets d'autor (''copyright'' en anglès).
 
== Polítiques de llançament ==
Línia 35:
 
# Algunes empreses protegeixen la informació sobre les seves API del públic general. Per exemple, [[Sony]] va posar només a disposició dels desenvolupadors certificats de PlayStation, l'API de [[PlayStation 2]]. Això va capacitar PlayStation per controlar qui programava jocs de PlayStation 2. Això aportava inherentment la capacitat d'exercir un control de qualitat, i també la possibilitat de recollir beneficis per les llicències.
# Algunes empreses fan que les seves API siguin lliurement disponibles. Per exemple, [[Microsoft]] fa públiques la majoria de les seves API, de manera que el softwareprogramari quepodrà basatfuncionar en aquestes API podrà córrer sobre [[plataforma (informàtica)|plataformes]] Windows usant aquestes API.
 
== Alguns exemples d'API ==