Che cosa sono le API (Application Programming Interface)

API è l'acronimo di Application Programming Interface, nonché di Application Program Interface.

Prima di realizzare questo post ho cercato la presenza online di qualche documento che potesse riassumere brevemente ed in modo chiaro l'utilità di un'API, tuttavia non sono arrivato ad un risultato che mi soddisfacesse. Neppure Wikipedia in questo caso mi convinceva, considerando che la pagina Application programming interface è riuscita a complicarmi le idee più di quanto credessi. Poco male, ho deciso così di realizzare una breve introduzione alle API, più avanti (nei post seguenti) capirete perché.

Come parzialmente intuibile dai termini che compongono l'acronimo, le API rappresentano un'interfaccia di programmazione, resta da comprendere a cosa e utilizzabile da chi.

Un esempio di interfaccia a del.icio.us

Prendiamo l'esempio di un servizio che molti utenti conoscono ed utilizzano: del.icio.us. del.icio.us è basato su un database che ha lo scopo di salvare tutti i preferiti degli utenti. Ogni utente può, attraverso l'interfaccia di del.icio.us, inserire preferiti, aggiungere tag, modificare i propri dettagli ed eseguire azioni.

Ma se l'utente non volesse usare l'interfaccia di del.icio.us? Questo è il concetto chiave. Ad esempio il browser Mozilla Firefox dispone di due estensioni che permettono di interagire agevolmente con del.icio.us usando... le API.

Riassumento il concetto espresso con questo esempio, possiamo estremizzare che le API rappresentano un'interfaccia aperta di un software, ovvero una particolare interfaccia che librerie, software o piattaforme possono usare per interagire con un programma.

A cosa servono le API

Le API permettono di espandere le funzionalità di un programma. Per uno sviluppatore mettere a disposizione un set di API di un suo software significa dare la possibilità ad altri di interagire con la sua piattaforma e, soprattutto, estendere le funzioni e le caratteristiche della struttura base della piattaforma. In altri termini, le API sono un ottimo strumento per promuovere un programma offrendo ad altri un modo per interagirci.

Ad esempio, le API di del.icio.us consentono agli utenti di gestire i propri preferiti senza connettersi al sito centrale, le API di Technorati offrono ai programmatori un set di strumenti per eseguire ricerche tra i blog senza passare attraverso il sito ufficiale, le API di Google Maps offrono agli utenti la possibilità di inserire mappe personalizzate nei propri siti, vedi Blogitalia.

Spero che questo post abbia in qualche modo chiarito leggermente il significato e l'utilità delle API. Prossimamente pubblicherò alcune informazioni su come si presentano le API, come possono essere usate ed alcuni esempi concreti di implementazione. Se nel frattempo ci sono domande o suggerimenti, sarei interessato a conoscere eventuali concetti da trattare sull'argomento API, nonché eventuali dubbi.