Guida

Cosa sono le API in informatica e quale impatto hanno sul business

Se API in informatica è semplicemente l’acronimo di Application Programming Interface, nel mondo Business significa molto di più perché rappresenta una componente strategica della digital transformation. Questo aspetto prettamente legato alla programmazione software, infatti, permette di semplificare il dialogo tra un’applicazione e un’altra evitando ridondanze inutili

Aggiornato il 30 Gen 2024

ecco cosa sono le Api in informatica, tutto quel che c'è da sapere sulle Application programming interface

Prima di entrare nel dettaglio di cosa sono le API in informatica la premessa dovuta è che la programmazione software a tutti gli effetti è un linguaggio. Come tale, è caratterizzata da una sintassi (che si compone di una serie di regole) e da uno stile di scrittura del codice. Ciascun sviluppatore può adottare modalità di scrittura diverse a seconda delle sue competenze, delle sue esperienze e delle sue abitudini.

Per agevolare la scrittura del codice, alcune procedure standard vengono raggruppate in set di strumenti specifici per l’espletamento di un determinato compito. Sono le cosiddette librerie (o routine) che corrispondono a una serie di chiamate a parti di un programma che uno sviluppatore può utilizzare per abbreviare il proprio lavoro. In tale contesto si collocano le Api in informatica.

Cosa sono le Api, significato di Application programming interface

Cos’è un API dunque? Il significato dell’acronimo API è Application Programming Interface: si tratta di applicazioni che espongono le funzionalità di altre applicazioni, agevolando la programmazione e l’integrazione di determinate componenti di servizio. Ciò vuol dire abilitare il riutilizzo di queste ultime che possono a loro volta essere composte e scomposte in base alle necessità.

In pratica, le API velocizzano la disponibilità di alcuni servizi in risposta alle esigenze di business. Grazie a esse, ad esempio, si può rendere fruibile via mobile un’applicazione enterprise o ci si può integrare in una catena estesa aprendo le app stesse a partner e fornitori e così via.

Application programming interface, il ruolo nella API economy

Per capire quanto siano strategiche le API e perché sono fondamentali nel supportare la digital transformation e il business, e in quella che possiamo sempre più definire API economy, si può citare un dato: stando ai risultati dal sondaggio globale pubblicati dalla startup Postman nel “2023 State of the API Report”, quasi due terzi dei rispondenti affermano che le proprie generano ricavi. Inoltre, di questi rispondenti il 43% dichiara che le API generano oltre un quarto del fatturato aziendale. Sempre dal rapporto di Postman emerge che le raccolte di API più popolari sono quelle di Salesforce, Whatsapp e Twitter. In ogni caso, oggi, qualunque azienda entri nel mondo della API economy ha a che fare con un set di Application programming interface finalizzate all’integrazione di nuovi servizi.

White Paper - Application Management: come modernizzare l’azienda grazie a un partner esperto

I vantaggi di utilizzare le API

Le application programming interface consentono ai servizi digitali di comunicare con altri prodotti senza la necessità di creare infrastrutture nuove per connetterli. Il significato di API, nello sviluppo, infatti, è quello di semplificare la possibilità di integrazione tra un’applicazione e un’altra evitando ridondanze e inutili replicazioni di codice.

Questo genera 3 principali vantaggi per le aziende:

  • Promuovere nuovi canali di reddito
  • Rafforzare diffusione e copertura del brand
  • Agevolare l’innovazione open source e, in generale, maggiore efficienza nello sviluppo

Esempi di Application programming interface

Oltre a quelle di Facebook, le API probabilmente più conosciute sono quelle fornite da Twitter, Google, eBay o Amazon.

Ma cosa vuol dire rendere disponibili le API? Per esempio, le API di Facebook, hanno permesso lo sviluppo di migliaia di servizi che accedono ai dati offerti dal social network. Basterà condividere il proprio account di Facebook per comprare, per esempio, i biglietti di un’agenzia viaggi o completare l’acquisto da un sito di e-commerce.

L’impostazione di policy di sicurezza delle Application programming interface arriva a permettere di gestire, nel caso delle piattaforme più complete, l’accesso a pagamento alle API. Pagamento che può essere diretto, o reso in base a condivisione sui ricavi. È il caso, per esempio, usando PayPal, degli sviluppatori che consentono ai loro interlocutori di pagare, mentre PayPal riceve una percentuale sulle vendite.

Microsoft e Sony, al contrario, custodiscono molto gelosamente le API di sviluppo per Xbox e PlayStation. Entrambe, infatti, hanno interesse a distribuirle a un numero ristretto di programmatori e case sviluppatrici, per controllare il numero di chi sviluppa giochi.

Altre software house, invece, hanno un atteggiamento diverso: una maggiore diffusione di tecnologia API garantisce una più ampia diffusione del loro software e piattaforma, e una distribuzione capillare di questi strumenti. La stessa Microsoft distribuisce liberamente le Application programming interface di Windows, cosciente del fatto che maggiore è il numero di software esistenti per il suo sistema operativo, maggiore sarà la diffusione del sistema operato stesso.

Google, per esempio, mette a disposizione quelle di Google Maps in modo che qualsiasi sviluppatore possa utilizzarle per costruire mappe personalizzate. Può integrarle nei propri siti web e offrire servizi di ricerca georeferenziati oppure ancora usarle in app mobile eccetera.

Differenti categorie di API

A seconda delle funzioni che eseguono, o dei particolari ruoli che ricoprono, le API oggi esistenti sono classificabili in diverse tipologie.

API locali

Sono sviluppate per fornire accesso a servizi middleware locali. Un classico esempio è costituito dalle TAPI (telephony API), che negli uffici permettono di integrare il sistema operativo di computer con servizi di telefonia.

API remote

A differenza delle precedenti, con la definizione di API remote si fa riferimento al fatto che le risorse gestite sono esterne alla macchina che invia la richiesta. Quest’ultima, in genere, usa il protocollo HTTP per richiedere e fornire messaggi.

API Web

Con queste si intende un’interfaccia di programmazione di applicazioni per un server web o un browser web. Si tratta di un concetto di sviluppo web, solitamente limitato al lato client dell’applicazione web stessa e consiste in una serie di procedure raggruppate in set di strumenti utili all’esecuzione di compiti nei software.

API REST

Una REST API (anche detta RESTful) è una interfaccia di programmazione di app che rispetta i principi di progettazione dell’architettura REST. Esse sono caratterizzate da grande flessibilità, in quanto seguono principi e metodi standard, utilizzano il protocollo HTTP, e sono in grado di gestire molteplici tipologie di chiamate.

API SOAP

Le API SOAP sono basate sul protocollo SOAP (Simple Object Access Protocol), che ne supporta lo sviluppo solitamente tramite il linguaggio XML (Extensible Markup Language).

API private (o interne)

Queste sono solitamente fruibili all’interno di un’organizzazione, e utilizzabili dagli sviluppatori dell’azienda per integrare e mettere in comunicazione diversi sistemi e applicazioni IT, e condividere dati.

API dei partner (third-party APIs)

Si tratta di API che un’organizzazione decide di rendere disponibili soltanto per alcuni partner, con cui sta, ad esempio, avviando nuove relazioni di business. Attraverso le Application programming interface di terze parti è possibile incrementare l’interconnessione reciproca, e fornire agli utenti finali applicazioni digitali di maggior valore, più ricche di funzionalità e servizi.

API pubbliche (o aperte)

Le API pubbliche, chiamate anche aperte o esterne, vengono rese disponibili online sul web per l’utilizzo da parte di qualunque sviluppatore esterno. Tuttavia, alcune di esse possono essere talvolta soggette a restrizioni seppur minime, come la necessità di registrazione, autenticazione o autorizzazione. Di conseguenza, non tutte le API pubbliche sono considerabili completamente aperte.

Specifica OpenAPI

Sempre nel contesto delle API aperte, la specifica OpenAPI (OAS) è nata come standard aperto per descrivere le API. La specifica per API HTTP definisce struttura e sintassi secondo modalità non legate al linguaggio di programmazione con cui è creata la API.

API generative (generative APIs)

Nel contesto di crescente diffusione dell’intelligenza artificiale generativa (GenAI), una emergente categoria di API è rappresentata dalle API generative, ossia API in grado di utilizzare algoritmi di apprendimento automatico (machine learning – ML) per generare nuovo contenuto o codice.

Cos’è un API Gateway, definizione e a cosa serve

La gestione di una application programming interface può essere complessa. Per costruirne una sicura e agile, è necessario adottare un approccio pragmatico. Utilizzare un gateway API permette lo sviluppo in modo ordinato di tutta la serie di microservizi associati, organizzando meglio il lavoro di programmazione.

La definizione di API gateway potrebbe quindi essere quella di cerniera strategica tra la migliore user experience omnicanale e tutto il mondo di microservizi e servizi IT. In un’architettura di microservizi, infatti, le app client necessitano in genere di utilizzare le funzionalità di più microservizi. Se questo utilizzo viene eseguito direttamente, il client deve gestire più chiamate agli endpoint dei microservizi. Cosa accade quando l’applicazione si evolve e vengono introdotti nuovi microservizi oppure quelli esistenti vengono aggiornati? Se l’applicazione ha molti microservizi, la gestione di un numero elevato di endpoint dalle app client può essere molto difficoltosa. Questo è il motivo per cui risulta molto più agevole disporre di un livello intermedio di riferimento indiretto, che chiama in causa i gateway API.

Architettura SOA e architettura di microservizi

Le API consentono la comunicazione tra microservizi, ovvero i componenti di un’architettura che ha un approccio allo sviluppo delle applicazioni quali suite di piccoli servizi. Quel che contraddistingue tale approccio architetturale a microservizi è proprio la suddivisione di un’applicazione in funzioni base che possono essere scritte (e funzionare o no) in modo indipendente. In un’architettura SOA – Service oriented architecture i vari elementi delle app forniscono servizi riutilizzabili in molte applicazioni su una rete mediante un protocollo di comunicazione.

Le differenze tra architetture SOA e a microservizi riguardano per lo più l’implementazione (le app SOA sono create intorno a un bus di servizio aziendale che detta le linee guida di programmazione) e il fatto che i microservizi sono tool infrastrutturali più che applicativi.

REST vs SOAP, come funzionano i Web service e cosa sono le REST Api

REST API (Representational State Transfer, Application Programming Interface)

SOAP (Simple object access protocol) è la struttura operativa (framework) estensibile e decentralizzata che può operare sopra varie pile protocollari per reti di computer. Fornisce tramite messaggi richieste di procedure remote. I richiami di procedure remote possono essere modellati come interazione di parecchi messaggi SOAP.

Il modello architetturale REST va soppiantando SOAP tra i protocolli per la creazione di Web service. Questo, in particolare, per lo scambio di messaggi tra componenti software. REST stabilisce una serie di regole grazie alle quali, ad esempio, client consumer e service provider possono dialogare tra loro. REST – Representational State Transfer è uno stile di architettura software per i sistemi distribuiti, rappresenta un sistema di trasmissione di dati su HTTP senza ulteriori livelli (quali, per esempio, SOAP del quale risulta quindi più semplice). Un concetto importante in REST è l’esistenza di risorse (fonti di informazioni), a cui si può accedere tramite un identificatore globale (un URI – Uniform Resource Identifier). Per utilizzare le risorse, le componenti di una rete (componenti client e server) comunicano attraverso una interfaccia standard (per esempio HTTP) e si scambiano rappresentazioni di queste risorse (il documento che trasmette le informazioni).

Il funzionamento REST prevede una struttura degli URL definita (al fine di identificare univocamente una risorsa o un insieme di risorse) e l’utilizzo dei verbi HTTP specifici per il recupero di informazioni (GET), per la modifica (POST, PUT, PATCH, DELETE) e per altri scopi (OPTIONS e così via). In particolare, il POST crea un nuovo elemento nella collezione. L’URI della nuova risorsa viene assegnato automaticamente ed è usualmente restituito da questa operazione (header Location). A differenza dei web services basati su SOAP, non esiste alcuno standard ufficiale per tecnologia API web RESTful. Questo perché REST è un insieme di linee guida per un’architettura, mentre SOAP è un protocollo. REST non è uno standard di per sé, ma le implementazioni RESTful utilizzano degli standard, come ad esempio HTTP, URI, JSON, e XML.

White Paper - KPI Retail: ecco come misurare vantaggi e ritardi competitivi

SDK, cos’è a cosa serve

Con SDK (acronimo di Software Development Kit) si intende una suite di strumenti utilizzabili per costruire in modo più semplice e immediato, programmi e applicazioni per le diverse piattaforme operative (dai sistemi operativi o firmware ai sistemi IoT), e piattaforme hardware (computer, ma anche smartphone, console videogame e così via). Grazie a un SDK viene facilitato il lavoro dello sviluppatore che vi trova librerie o moduli precompilati che evitano la riscrittura di righe di codice. Gli SDK possono essere molto diversi tra loro dal punto di vista delle dimensioni e delle tecnologie utilizzate. Tutti possiedono strumenti fondamentali, i cui principali sono:

  1. Un compilatore utile a tradurre il codice sorgente in un eseguibile
  2. API (affinché, per esempio, un modulo o un software possa interagire con un altro sviluppato per un’altra piattaforma)
  3. La documentazione sul linguaggio di programmazione per cui si è sviluppato l’SDK
  4. Le informazioni sulle licenze da utilizzare per distribuire programmi creati con l’SDK

Clicca qui per scaricare l'Infografica "La guida per i C-Level verso la Digital Transformation

API? Mai più senza!

Incentivate dalle esigenze di mobility e cloud, sempre più aziende attraverso le API tendono a condividere le proprie risorse informative con altri sviluppatori (interni o esterni) per far sì che i propri asset generino un ulteriore ampliamento della portata dei ricavi e della fidelizzazione degli utenti.

Attenzione alla sicurezza

Per qualsiasi azienda che voglia sviluppare applicazioni mobili, senza dover alterare o modificare dati e servizi in essere o gestire e integrare in modo efficiente servizi cloud e on premise, monitorare l’uso delle API aziendali e proteggerle sono due aspetti strategici. Il rischio è un effetto a cascata che un’API contenente uno script infetto può generare su tutte le applicazioni che si interfacciano con essa.

Se un hacker riesce a introdurre uno script dannoso nel database principale e il codice della API della suddetta società non lo elimina prima di una richiesta da una altra application programming interface, lo script si trasmette. Potenzialmente, lo script dannoso potrebbe compromettere i dati di migliaia di utenti, molto spesso ignari di quello che sta accadendo alle proprie informazioni sensibili.

API Management a supporto della governance

Se il loro utilizzo è fondamentale per fare velocemente ed efficacemente sviluppo di applicazioni, il proliferare di API comporta inevitabilmente problemi di gestione e governance. Per questa ragione, sono nate le piattaforme di Api management che hanno l’obiettivo di monitorare, rendere sicuro e ottimizzare l’uso delle application programming interface, oltre che la loro integrazione.

In un ecosistema digitale in continua espansione, le API (Application Programming Interfaces) la crescente dipendenza dalle API ha esposto le organizzazioni a nuovi vettori di attacco, rendendo imperativo l’implementazione di solide strategie di sicurezza per proteggere le risorse digitali. Per fronteggiare la potenziale vulnerabilità delle API serve una robusta sicurezza, a partire dalla corretta autenticazione e autorizzazione degli utenti, assicurando che solo soggetti legittimi abbiano accesso alle funzionalità esposte.

Come gestire la sicurezza delle API

L’adozione di token, come quelli forniti da OAuth 2.0, può significativamente aumentare la sicurezza delle transazioni API. Inoltre, per mitigare rischi quali injection attacks, è essenziale validare e sanificare tutti i dati in ingresso. Anche la crittografia, sia in transito mediante TLS (Transport Layer Security), sia a riposo, aiuta a proteggere i dati sensibili da intercettazioni e accessi non autorizzati. La limitazione del rate di richieste (rate limiting) può prevenire attacchi di tipo DoS (Denial of Service), garantendo la disponibilità del servizio anche sotto stress. L’implementazione di API gateways fornisce un ulteriore strato di difesa, fungendo da intermediari tra gli utenti e le API, offrendo funzionalità come il caching, la gestione delle politiche e la registrazione delle attività. Infine, l’adozione di un approccio basato sul principio del minimo privilegio, dove le API concedono l’accesso solo alle risorse strettamente necessarie per la specifica operazione richiesta, riduce l’area di attacco. L’analisi continua del traffico API e l’impiego di soluzioni di intelligenza artificiale per rilevare comportamenti anomali possono rapidamente identificare e contrastare tentativi di intrusione. Mantenere le API aggiornate e sottoporle a regolari audit di sicurezza è fondamentale per prevenire vulnerabilità e garantire la resilienza di fronte a minacce in evoluzione.

Beta 80 - White Paper - Application revolution Journey

Articolo originariamente pubblicato il 21 Giu 2022

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Z
Laura Zanotti - Fonte TechTarget

Ha iniziato a lavorare come technical writer e giornalista negli anni '80, collaborando con tutte le nascenti riviste di informatica e Telco. In oltre 30 anni di attività ha intervistato centinaia di Cio, Ceo e manager, raccontando le innovazioni, i problemi e le strategie vincenti delle imprese nazionali e multinazionali alle prese con la progressiva convergenza tra mondo analogico e digitale. E ancora oggi continua a farlo...

Articoli correlati

Articolo 1 di 5