Che cos'è un'API (Application Programming Interface)?

Definizione ed esempi

Molte persone che lavorano nel mondo delle tecnologie capiscono intuitivamente che cos'è un'API (Application Programming Interface), ma se viene chiesto loro di dare una definizione, faticano a trovare le parole giuste. In parole semplici, un'API è sia un pezzo di software in esecuzione su un server in rete che un componente del codice di programmazione.

Le interfacce API sono regole standard per l'interscambio di dati fra le applicazioni, così come i protocolli sono gli standard per l'interscambio di dati fra reti. Senza API, gli sviluppatori software impiegherebbero molto più tempo per scrivere il codice necessario per ottenere informazioni dalle piattaforme alle quali vogliono accedere.

Definizione di API

Quando è in esecuzione su un server, un'API è un insieme di routine codificate che riceve richieste e invia risposte da e verso altri programmi. I progettisti di API implementano questo codice attraverso una programmazione standardizzata che espone le funzioni che hanno senso per accedere alla piattaforma in questione.

Ad esempio, supponiamo di voler incorporare una mappa con l'ubicazione dell'azienda sul sito web oppure visualizzare i tweet più recenti. Non è possibile accedere direttamente a Google Maps o Twitter, perché il codice di quei siti risiede su server di Google e Twitter. Ma entrambe le piattaforme offrono API che consentono agli utenti autorizzati di recuperare dati dai loro siti.

L'API di Google Maps e l'API di Twitter sono due degli esempi più comuni, perché si tratta di servizi molto diffusi, ma la maggior parte dei provider SaaS (Software as a Service) offre API che consentono agli sviluppatori di scrivere codice per pubblicare e recuperare dati dai loro siti.

Ogni "chiamata" proveniente da queste API ha una sintassi definita e ogni fornitore che fornisce un'API ne documenta la sintassi, solitamente sul proprio sito o, a volte, su siti come GitHub o ProgrammableWeb.

La maggior parte delle API offre diversi metodi, detti anche operazioni, che consentono agli sviluppatori di creare, recuperare, aggiornare e cancellare dati. I verbi utilizzati per svolgere queste operazioni sono, rispettivamente, POST, GET, PUT e DELETE. Ogni metodo generalmente assume la forma di un file in un determinato formato (solitamente JSON o XML) che contiene i dati su cui lavorare, e utilizza un URI (Uniform Resource Identifier) che funge da indirizzo dove l'API può interagire con il programma che genera la chiamata.

Come si traduce tutto questo in pratica? Prendiamo l'esempio di un'API Talend. La Stitch Import API consente agli sviluppatori di inviare dati da qualsiasi sorgente alla pipeline di dati di Stitch. Si può inviare un singolo record attraverso la pipeline di dati di Stitch con una call POST dell'API:

<pre> curl -X "POST" " https://api.stitchdata.com/v2/import/batch" \
     -H 'Authorization: Bearer [ACCESS_TOKEN]' \
     -H 'Content-Type: application/json' \
     -d $
'{
    "table_name": "customers",
    "schema": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "age": {
          "type": "integer"
        },
        "has_magic": {
          "type": "boolean"
        },
        "modified_at":{
            "type":"string",
            "format":"date-time"
         }
      }
    },
    "messages": [
      {
        "action": "upsert",
        "sequence": 1565880017,
        "data": {
          "id": 1,
          "name": "Finn",
          "age": 15,
          "has_magic": false,
          "modified_at":"2020-12-13T21:25:03+0000"
        }
      }
    ],
    "key_names": [
      "id"
    ]
  }'
</pre>

Le API sono utili perché aumentano la produttività degli sviluppatori software. Senza API, gli sviluppatori dovrebbero scrivere e aggiornare il codice in prima persona per accedere alle risorse remote. Disponendo di una modalità standard per leggere e scrivere da e verso queste risorse, la piattaforma che fornisce le API diventa più accessibile e interessante per gli sviluppatori, aumentando così le probabilità che terze parti utilizzino e scambino dati con la loro piattaforma.

Storia delle API

Le API esistono da più tempo del World Wide Web... da molti decenni, per essere precisi. Si sono diffuse con l'avvento delle reti di computer, quando i fornitori di applicazioni basate su server e i sistemi operativi hanno cominciato ad aver bisogno di modalità standard per consentire ai clienti di accedere alle risorse sui server.

Man mano che il Web si è diffuso, le API sono approdate nel mondo dello sviluppo web. Le prime API web furono introdotte da Salesforce nel 2000.

Progettazione di API

Molte delle prime API si basavano su SOAP, Simple Object Access Protocol. "Simple" era però utilizzato in maniera fuorviante. SOAP si basa su documenti XML e chiamate di procedura remota (RPC). Gli sviluppatori dovevano preoccuparsi di cose come meccanismi di trasporto, nomi di operazioni e URI di destinazioni. Nessuno aveva definito regole standard per la progettazione di API, pertanto le API SOAP avevano una manutenzione molto difficile.

L'unica alternativa, CORBA (Common Object Request Broker Architecture), definita dall'Object Management Group (OMG), era ancor più complessa.

API REST

Riconoscendo la necessità di semplificazione, l'informatico Roy Fielding propose il trasferimento dello stato rappresentativo (REST) nella sua tesi di dottorato come “astrazione degli elementi architetturali all'interno di un sistema ipermediatico distribuito”, cioè il World Wide Web. Questa tecnologia definisce i ruoli di agente utilizzatore (solitamente un browser web), un server di origine che fornisce l'accesso a servizi web, e componenti intermediatori che inoltrano richieste e risposte. I servizi web RESTful consentono ai sistemi richiedenti di accedere e manipolare rappresentazioni delle risorse web utilizzando un insieme uniforme predefinito di operazioni prive di stato. L' assenza di stato significa semplicemente che i servizi web non conservano informazioni sulla sessione fra una richiesta e l'altra.

eBay ha lanciato la prima API REST nel 2002, dimostrando subito l'utilità di consentire a sviluppatori esterni all'azienda di portare valore aggiunto alla piattaforma di eBay. Da allora i team di sviluppo software hanno scritto API non solo per servizi via web, ma per social media, applicazioni mobile e dispositivi hardware (Internet of Things, o IoT), fra le tante piattaforme. Oggi quasi tutte le API dei fornitori sono basate su REST.

Le API sono per la maggior parte pubbliche. Del resto, se sviluppatori esterni non possono utilizzare le API di un'organizzazione, qual è il valore aggiunto? Tuttavia, alcune organizzazioni tengono le API riservate e le condividono solo con partner a pagamento.

Integrazione API

Le API sono anche uno strumento fondamentale per l'integrazione di applicazioni. L'integrazione delle applicazioni è un mezzo per consentire ad applicazioni e sistemi di diversi fornitori di integrarsi reciprocamente nei rispettivi flussi di lavoro; in questo modo, ad esempio, si possono inserire dati in un'applicazione e averli automaticamente disponibili su altre piattaforme.

Un'integrazione API funge anche da collegamento fra due applicazioni, consentendo loro di scambiarsi dati. Con le API, gli sviluppatori possono sincronizzare dati fra più piattaforme. Ad esempio, l'integrazione API è quel meccanismo per cui, una volta inserito un nuovo contatto in Salesforce, questo viene riportato automaticamente anche in Marketo.

Un vantaggio chiave dell'integrazione API è la capacità di automatizzare la condivisione dei dati in un processo sicuro, contribuendo così a mantenere l'integrità dei dati fra le piattaforme.

Gestione di API

Per creare le API, le aziende si affidano a software per la gestione di API. Gli strumenti di gestione delle API favoriscono la creazione e la pubblicazione di API, l'applicazione di politiche di utilizzo, il controllo degli accessi, la raccolta e l'analisi di statistiche sull'utilizzo e i report sulle prestazioni. Esistono strumenti per la gestione di API sia commerciali sia open-source. Leggi qui per saperne di più.

Talend API Services

Molte imprese intuiscono il valore aggiunto di API che consentono a sviluppatori esterni di interagire con le loro piattaforme, ma progettare e documentare le API può richiedere molti mesi di lavoro di uno sviluppatore (e spesso anche in senso assoluto), con costi di decine di migliaia di dollari.

Invece di cominciare da zero, le aziende possono usare Talend API Services per fare il lavoro pesante. Questa soluzione consente agli sviluppatori di collaborare per creare e testare nuove API con strumenti di progettazione visuale. Siamo a disposizione per presentare una demo e mostrare che cosa può fare Talend API Services per la tua azienda.

Sei pronto a iniziare con Talend?