Interfaccia di Programmazione delle Applicazioni (API)

Cos’è un’API?

Un’API, acronimo di Application Programming Interface, funge da mediatore standardizzato nell’ambito del software. Facilita la comunicazione tra diversi componenti software, tra cui applicazioni, librerie e sistemi operativi, stabilendo protocolli e linee guida per la condivisione dei dati senza soluzione di continuità.

Un diagramma che illustra il flusso di lavoro di un'API, con la sequenza: "un'applicazione web in un browser" invia una richiesta attraverso "Internet" a una "API" che comunica con un "server web" e quindi con un "database". Il database invia una risposta attraverso il server web e l'API, che alla fine ritorna all'applicazione web nel browser
Rappresentazione schematica del processo di comunicazione API

Componenti di un’API:

  • Le specifiche fungono da quadro normativo che detta il funzionamento di un’API. Comprendono aspetti quali i formati dei dati, i protocolli di comunicazione e i meccanismi di autenticazione.
  • Le implementazioni si riferiscono al codice tangibile responsabile dell’esecuzione dei processi di comunicazione all’interno di un’API. Questo codice funziona come motore operativo, eseguendo funzioni, metodi e procedure per consentire un’interazione continua.

Il Ruolo delle API nello Sviluppo del Software

Le API svolgono un ruolo cruciale nel semplificare i processi di sviluppo delle app, fornendo agli sviluppatori l’accesso a funzionalità e servizi esistenti. Sfruttando le API, gli sviluppatori possono concentrarsi sulla creazione della logica della loro applicazione senza dover ricreare componenti fondamentali, snellendo così il flusso di lavoro dello sviluppo.

Tipi di API

Le API possono essere classificate in due tipi principali:

Grafico didattico che mostra due tipi di API: API locali, essenziali per le operazioni interne al sistema, e API remote, che consentono la comunicazione con l'esterno
Infografica di una panoramica comparativa delle API locali e remote

API locali

Le API locali sono integrate in un sistema e comprendono:

  • Librerie software: Raccolte di funzioni e moduli precostituiti progettati per affrontare le sfide più comuni della programmazione, accompagnati dalle proprie API per una facile integrazione.
  • Framework: Set di strumenti completi dotati di librerie, strumenti e convenzioni su misura per lo sviluppo di tipi specifici di applicazioni, integrati dalle rispettive API.
  • Sistemi operativi: Le API dei sistemi operativi che consentono alle applicazioni di accedere alle risorse hardware e di sistema, facilitando attività come le operazioni sui file, il networking e la gestione dei processi.

API remote

Le API remote estendono le funzionalità delle applicazioni consentendo l’interazione con servizi o risorse esterne ospitate su server distanti. Queste API utilizzano protocolli di rete come il TCP/IP o l’HTTP per stabilire la comunicazione.

  • API Web: Un sottoinsieme delle API remote, le API web, note anche come API RESTful, sfruttano le capacità di Internet e del protocollo HTTP (Hypertext Transfer Protocol) per facilitare la comunicazione tra le applicazioni.

Riferimenti

  1. Reddy, Martin (2011). API Design for C++. Elsevier Science. p. 1. ISBN 9780123850041
  2. Wood, Laura (2021-08-25). “Global Cloud Microservices Market (2021 to 2026)” businesswire.com. Recuperato il 2022-03-29
  3. Clarke, Steven (2004). “Measuring API Usability”. Dr. Dobb’s
  4. Wikipedia API API: Main page – MediaWiki
  5. Set of guidelines from Microsoft for designing high-quality APIs

Additional Resources