Interfaccia di programmazione applicazioni
Il termine API è un acronimo e significa "Application Programming Interface".
Pensa a un'API come un menu in un ristorante. Il menu fornisce un elenco di piatti che è possibile ordinare, insieme a una descrizione di ogni piatto. Quando si specifica quali voci di menu si desidera, la cucina del ristorante esegue il lavoro e fornisce alcuni piatti finiti. Non sai esattamente come il ristorante prepara quel cibo e non ne hai davvero bisogno.
Allo stesso modo, una API elenca una serie di operazioni che gli sviluppatori possono utilizzare, insieme a una descrizione di ciò che fanno. Lo sviluppatore non ha necessariamente bisogno di sapere come, ad esempio, un sistema operativo costruisce e presenta una finestra di dialogo "Salva con nome". Devono solo sapere che è disponibile per l'uso nella loro app.
Questa non è una metafora perfetta, poiché gli sviluppatori potrebbero dover fornire i propri dati all'API per ottenere i risultati, quindi forse è più simile a un ristorante di lusso in cui è possibile fornire alcuni dei propri ingredienti con cui la cucina lavorerà.
Ma è ampiamente accurato. Le API consentono agli sviluppatori di risparmiare tempo approfittando dell'implementazione di una piattaforma per eseguire il lavoro nitty-grintoso. Ciò aiuta a ridurre la quantità di codice che gli sviluppatori devono creare e aiuta anche a creare maggiore coerenza tra le app per la stessa piattaforma. Le API possono controllare l'accesso alle risorse hardware e software.
Le API rendono la vita più facile per gli sviluppatori
Supponiamo che tu voglia sviluppare un'app per un iPhone. Il sistema operativo iOS di Apple offre un numero elevato di API, come ogni altro sistema operativo, per semplificare le cose.
Se si desidera incorporare un browser Web per mostrare una o più pagine Web, ad esempio, non è necessario programmare da zero il proprio browser Web solo per la propria applicazione. Si utilizza l'API WKWebView per incorporare un oggetto browser WebKit (Safari) nell'applicazione.
Se si desidera acquisire foto o video dalla fotocamera dell'iPhone, non è necessario scrivere la propria interfaccia della fotocamera. Utilizza l'API della fotocamera per incorporare la fotocamera integrata dell'iPhone nella tua app. Se non esistessero API per semplificare la procedura, gli sviluppatori di app dovrebbero creare il proprio software della fotocamera e interpretare gli input dell'hardware della videocamera. Ma gli sviluppatori del sistema operativo di Apple hanno fatto tutto questo duro lavoro in modo che gli sviluppatori possano semplicemente usare l'API della fotocamera per incorporare una fotocamera, e poi continuare a costruire la loro app. E, quando Apple migliora l'API della fotocamera, tutte le app che si basano su di essa trarranno automaticamente vantaggio da tale miglioramento.
Questo vale per ogni piattaforma. Ad esempio, vuoi creare una finestra di dialogo su Windows? C'è un'API per questo. Vuoi supportare l'autenticazione delle impronte digitali su Android? C'è anche un'API per questo, quindi non è necessario testare ogni sensore di impronte digitali del produttore Android diverso. Gli sviluppatori non devono reinventare la ruota più e più volte.
Le API controllano l'accesso alle risorse
Le API vengono anche utilizzate per controllare l'accesso ai dispositivi hardware e alle funzioni software che un'applicazione potrebbe non avere necessariamente il permesso di utilizzare. Ecco perché le API svolgono spesso un ruolo importante nella sicurezza.
Ad esempio, se hai mai visitato un sito Web e visualizzato un messaggio nel tuo browser che il sito web sta chiedendo di vedere la tua posizione precisa, quel sito web sta tentando di utilizzare l'API di geolocalizzazione nel tuo browser web. I browser Web espongono API come questa per facilitare agli sviluppatori web l'accesso alla tua posizione, possono semplicemente chiedere "dove sei?" E il browser fa il duro lavoro di accedere al GPS o alle reti Wi-Fi nelle vicinanze per trovare la tua posizione fisica.
Questo stesso principio viene utilizzato su sistemi operativi mobili moderni come iOS e Android, in cui le app mobili dispongono di autorizzazioni che possono essere applicate controllando l'accesso alle API. Ad esempio, se uno sviluppatore tenta di accedere alla videocamera tramite l'API della videocamera, puoi rifiutare la richiesta di autorizzazione e l'app non ha modo di accedere alla videocamera del dispositivo.
I file system che usano le autorizzazioni, come fanno su Windows, Mac e Linux, hanno queste autorizzazioni applicate dall'API del file system. Un'applicazione tipica non ha accesso diretto all'hard disk fisico grezzo. Invece, l'app deve accedere ai file tramite un'API.
Le API sono utilizzate per la comunicazione tra i servizi
Le API vengono utilizzate anche per tutti i tipi di altri motivi. Ad esempio, se hai mai visto un oggetto Google Maps incorporato in un sito Web, tale sito Web utilizza l'API di Google Maps per incorporare tale mappa. Google espone API come questa agli sviluppatori web, che possono quindi utilizzare le API per plopare oggetti complessi direttamente sul loro sito web. Se non esistessero API come questa, gli sviluppatori potrebbero dover creare le proprie mappe e fornire i propri dati di mappa solo per mettere una piccola mappa interattiva su un sito web.
Inoltre, poiché si tratta di un'API, Google può controllare l'accesso a Google Maps su siti Web di terze parti, assicurando che vengano utilizzati in modo coerente piuttosto che tentare di incorporare in modo disordinato un frame che mostra il sito Web di Google Maps, ad esempio.
Questo vale per molti servizi online diversi. Esistono API per richiedere la traduzione di testi da Google Translate o incorporare commenti o tweet di Facebook da Twitter su un sito web.
Lo standard OAuth definisce anche un numero di API che consentono di accedere a un sito Web con un altro servizio, ad esempio, per utilizzare gli account Facebook, Google o Twitter per accedere a un nuovo sito Web senza creare un nuovo account utente solo per quel sito. Le API sono contratti standard che definiscono come gli sviluppatori comunicano con un servizio e il tipo di output che gli sviluppatori dovrebbero aspettarsi di ricevere.
Se hai finito, avrai un'idea migliore di cos'è un'API. In definitiva, non hai davvero bisogno di sapere cos'è un'API a meno che tu non sia uno sviluppatore. Tuttavia, se vedi che una piattaforma software o un servizio ha aggiunto nuove API per vari hardware o servizi, dovrebbe essere più facile per gli sviluppatori sfruttare tali funzionalità.