# API

### De Viquipèdia

| Aquest article tracta sobre el programari informàtic. Per a altres significats, vegeu «API (desambiguació)».

Una Interfície de Programació d'Aplicacions (Application Programming Interface, API), é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 llibreria de programació, 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'API en sí mateixa és abstracta en tant que especifica una interfície i no està lligada als detalls de la implementació. Quan un programari proveeix la funcionalitat descrita per una API, llavors diem que és una implementació de l'API.

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 APIs són diferents de les interfícies binàries d'aplicació, en què les APIs estan especificades en termes de Llenguatge 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'APIs conegudes són:

- Single Unix Specification
- API de Windows
- API de Java

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étode, funció o procediment.

## [edita] Models de disseny

Hi ha diversos models de disseny per APIs. Les interfícies que persegueixen la màxima velocitat d' execució sovint consisteixen en un conjunt de funcions, procediments, variables i estructures de dades. Tanmateix, també hi ha d'altres models - com ara l' inté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 APIs, com ara les estàndards d'un sistema operatiu, estan implementades com llibreries de codi a part que es distribueixen juntament amb el sistema operatiu. D'altres requereixen distribuïdores de software 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 software pels sistemes incrustats, com pugui 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 llibreria o 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".[1] I tot i que sovint les APIs són proveïdes amb "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 software anomenat Wine.

Als països amb patents de software, é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, així que cal tenir cura i comptar amb assessorament legal, abans de tirar endavant aquesta tècnica. Per exemple, mentre que les APIs no tenen un status legal clar, podrien incloure patents que no haurien de ser usades fins que, i si, qui atresora la patent dóna el seu permís. Als països on no s'atorguen patents de software, l'única protecció que pot ser aplicada a una API, és la del copyright.

## [edita] Polítiques de llençament

Dues línies generals sobre les polítiques de publicació d'una API.

1. Algunes empreses protegeixen la informació sobre les seves APIs 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, així com també la possibilitat de recollir beneficis per les llicències.
2. Algunes empreses fan que les seves APIs siguin lliurement disponibles. Per exemple, Microsoft fa públiques la majoria de les seves APIs, de manera que el software que basat en aquestes APIs podrà córrer sobre plataformes Windows.

## [edita] Alguns exemples d'APIs

- La interfície de crida a la BIOS del PC
- Single UNIX Specification (SUS)
- API de Microsoft Win32
- Java Platform, Enterprise Edition APIs
- ASPI per SCSI d'interconnexió de dispositius
- Carbon i Cocoa pel OS de Macintosh
- API multiplataforma d'OpenGL
- DirectX per Microsoft Windows
- Simple DirectMedia Layer (SDL)
- API de Google Maps

## [edita] Veieu també

- Interfície binària d'aplicació (ABI)
- Definicions d'Interfície de Servei Obert (OSID)
- Plugin
- Document Object Model
- Serveis Web
- Mashup (aplicació web híbrida)

## [edita] Enllaços externs

- Com dissenyar una bona API i per què importa -PDF en anglès

Obtingut de "http://ca.wikipedia.org../../../a/p/i/API_db97.html"

Categoria: Programari

##### Views

- Article
- Discussió
- Revisió actual

##### Cerca

##### En altres llengües

- Bosanski
- Česky
- Dansk
- Deutsch
- Ελληνικά
- English
- Español
- Eesti
- Suomi
- Français
- Galego
- עברית
- Magyar
- Bahasa Indonesia
- Italiano
- 日本語
- 한국어
- Lietuvių
- Nederlands
- ‪Norsk (bokmål)‬
- Polski
- Português
- Русский
- Slovenčina
- Svenska
- Türkçe
- Українська
- Tiếng Việt
- 中文