In ambito informatico, API è una sigla inglese che sta per Application Programming Interface (in Italiano, Interfaccia di programmazione di un'applicazione).
Come suggerisce il termine, si tratta di un tipo particolare di interfaccia che stabilisce in quale modo un programma (applicazione) debba interagire con un dato sistema operativo e ottenere informazioni dalle relative librerie.
Più specificamente, con questo termine si considera in astratto l'insieme di ogni subset o insieme di costanti, strutture dati, funzioni e classi (nell'ambito della programmazione ad oggetti) altamente specializzate che offrono funzionalità di alto livello con cui dialogare con l'esterno.
Il termine non è necessariamente legato ad uno specifico linguaggio di programmazione: le API sono sempre esistite, anche quando non si sapeva come chiamarle. Il termine infatti è nominato in differenti ambiti: si parla di API in Java, .NET, PHP, C e C++ ma anche quando ci si riferisce a specifiche funzionalità offerte da sistemi operativi, cellulari, smart-phone o navigatori satellitari.
Recentemente si assiste ad una florida nascita di API per svolgere qualunque tipo di attività sia sul Web che in realtà aziendali.
Ciò che ha posto le basi per questa 'rivoluzione' è stato sicuramente l'evoluzione dello sviluppo software secondo il paradigma della programmazione orientata agli oggetti.
Sono famose in ambito web le API che Google ha progettato, e chiunque può utilizzare, per creare mappe, compilare calendari e gestire documenti online.
Le API sono progettate con lo scopo di allargare l'orizzonte delle funzionalità di determinate tipologie di applicazioni o di migliorare il funzionamento di specifiche realtà già esistenti.
Esse solitamente possono essere pensate come un insieme chiuso di moduli, o scatola nera, che offre però delle funzioni di alto livello solitamente di facile utilizzo.
Motivazione alla base della progettazione di API è la volontà di offrire all'utilizzatore finale un alto livello di astrazione delle funzionalità tale da rendere facile l'utilizzo delle stesse senza che l'utente debba conoscere invece le logiche, i meccanismi e le relazioni di 'basso' livello esistenti tra i moduli di cui le stesse sono composte.
Sviluppare software secondo le regole della OOP, cioè il mezzo che oggi offre le migliori possibilità ed il livello più alto per astrarre funzionalità specifiche, rende più facile la fase di progettazione di API.
Articolo a cura di mirkoagrati 20:50, Set 24, 2009 (CEST)