Che cos'è un'API (interfaccia di programmazione)?

Aggiornato: ottobre 2026

Un’API è un insieme di regole che permette a un’applicazione di richiedere dati e funzionalità a un’altra senza conoscerne il codice interno. La famosa analogia del ristorante – si ordina da un menu, la cucina resta invisibile – si merita la sua unica frase e niente di più, perché la cosa reale è più istruttiva della metafora: un’API è un contratto, e i contratti sono precisi.

Punti chiave

DomandaRisposta
La definizioneUn contratto definito di richiesta/risposta fra due programmi
Il cicloEndpoint + metodo + header + corpo → codice di stato + risposta
Per pubblicoPubblica · partner · interna · composita
Per stileREST · GraphQL · gRPC · SOAP · WebSocket
Il contratto modernoUna spec leggibile dalle macchine (OpenAPI) che genera documentazione, client e mock

Anatomia di una richiesta e di una risposta di API HTTP

Nessuna spiegazione ben posizionata ne mostra una, quindi ecco una chiamata API intera – richiesta e risposta, nulla di nascosto:

POST /classes/Todo HTTP/1.1              ← metodo + endpoint
Host: api.example-backend.com
X-Api-Key: app-7f2c…                     ← identifica l'app che chiama
Authorization: Bearer eyJhbGci…          ← autentica l'utente
Content-Type: application/json

{ "title": "Ship the release", "done": false }

HTTP/1.1 201 Created                     ← stato: ha funzionato, risorsa creata
Location: /classes/Todo/xKd91m
Content-Type: application/json

{ "objectId": "xKd91m", "createdAt": "2026-07-24T10:30:00Z" }

La stessa chiamata attraverso un SDK – che non è altro che questo HTTP, avvolto nell’idioma del linguaggio usato:

// JavaScript / Node.js — Back4app JS SDK
// One API call: create a record via the auto-generated REST API
const todo = new Parse.Object('Todo');
todo.set('title', 'Ship the release');
todo.set('done', false);
await todo.save();
// Under the hood: POST /classes/Todo with a JSON body → 201 Created
console.log('Created with id', todo.id);

Come funziona una chiamata API

Il ciclo di richiesta e risposta di un'APIUn'applicazione client invia a un'API una richiesta con metodo, endpoint, header e corpo; l'API la valida e la autorizza, invoca la logica di backend e i dati, e restituisce al client un codice di stato con un corpo di risposta.

richiesta:
metodo + endpoint + header + corpo

risposta:
codice di stato + JSON

App client
(web, mobile, altro server)

API
valida · autorizza · instrada

Logica di backend
+ database

Un'applicazione client invia a un'API una richiesta con metodo, endpoint, header e corpo; l'API la valida e la autorizza, invoca la logica di backend e i dati, e restituisce al client un codice di stato con un corpo di risposta.

Tre proprietà di questo ciclo spiegano perché le API fanno girare lo stack moderno. Astrazione: al chiamante serve il contratto, mai l’implementazione – il provider può riscrivere tutto dietro l’interfaccia senza rompere un solo client. Confine: validazione e permessi vivono all’interfaccia, ed è per questo che i client parlano alle API e mai direttamente al database – un’API non è un database; è il custode che gli sta davanti. Composizione: poiché ogni capacità è invocabile, le applicazioni si assemblano a partire da servizi – l’autenticazione qui, i pagamenti là, le mappe da un terzo – e sempre più gli agenti IA usano lo stesso substrato: il tool calling è chiamare API con un modello che decide le richieste.

Il contratto: che cosa promette davvero un’API

Le pagine che definiscono un’API “un contratto” raramente ne mostrano uno. Oggi il contratto è un documento leggibile dalle macchine – l’OpenAPI Specification è lo standard per le API HTTP – che elenca ogni endpoint, parametro, schema e codice di stato. Da quel solo file gli strumenti generano documentazione di riferimento, librerie client, stub di server, server mock e test di contratto.

L’inquadramento contrattuale ha denti grazie al versionamento. Aggiungere un campo alla risposta non rompe nessuno; rinominarlo o rimuoverlo rompe in silenzio ogni consumatore – per questo le API mature distinguono le modifiche additive da quelle che rompono, versionano la propria superficie (/v1/, oppure tramite header) e pubblicano finestre di deprecazione. Un’API senza una politica di cambiamento è un contratto senza clausole: tecnicamente una promessa, in pratica una sorpresa.

I tipi di API

In forma di query, perché “tipi di API” è una ricerca a sé: due tassonomie, non una.

Per pubblico:

TipoConsumatoriPreoccupazioni tipiche
Pubblica (aperta)Qualsiasi sviluppatore registratoChiavi, quote, qualità della documentazione, disciplina di versionamento
PartnerAziende sotto contrattoAccordi legali, SLA, autenticazione più stretta
Interna (privata)I team e i servizi della propria organizzazioneContratti fra microservizi, cicli di cambiamento più rapidi
CompositaClient che hanno bisogno di pacchettiUna chiamata che ne orchestra diverse – meno giri di rete

Per stile: REST (risorse a degli URL, metodi HTTP), GraphQL (query modellate dal client su un solo endpoint), gRPC (binario, contract-first, da servizio a servizio), SOAP (buste XML, standard enterprise/legacy) e le API WebSocket (bidirezionali, persistenti) – confrontate nella tabella seguente.

E un paragrafo che le spiegazioni sul web saltano: non ogni API è un’API web. La libreria standard di un linguaggio, le chiamate di sistema POSIX e le interfacce fetch e di geolocalizzazione integrate nel browser sono tutte API – contratti fra programmi – che non attraversano mai una rete. La variante web ha soltanto messo il contratto dietro un URL.

REST vs. GraphQL vs. gRPC vs. SOAP vs. WebSocket

StileFormato sul filoModelloPunto di forzaAttenzione a
RESTJSON su HTTPRisorse + metodiAPI CRUD pubbliche, cacheabilità, ubiquitàOver/underfetching su forme fisse
GraphQLJSON su HTTPQuery composte dal clientClient diversi, dati annidatiComplessità della cache, N+1 dei resolver
gRPCProtobuf su HTTP/2Chiamate di procedura tipizzateVelocità interna da servizio a servizioFrizione nel browser, debug binario
SOAPBuste XMLOperazioni + standard WS-*Enterprise legacy, contratti formaliVerbosità, peso degli strumenti
WebSocketFrame su un solo socketMessaggi bidirezionaliPush in tempo reale, presenzaIl protocollo va definito da zero

Casi d’uso tipici

  • Backend mobile e web – i dati di ogni schermata arrivano attraverso un’API; il frontend non tocca mai il database.
  • Integrazione di terze parti – pagamenti, identità, messaggistica, mappe: capacità affittate tramite contratti invece di essere ricostruite.
  • Comunicazione fra microservizi – le API interne come le cuciture che permettono ai servizi di essere rilasciati e scalati in modo indipendente.
  • Automazione e scripting – tutto ciò che ha un’API si può orchestrare: pipeline di CI, infrastruttura, flussi di contenuti.
  • Agenti IA e tool calling – i modelli agiscono invocando API; un contratto bene documentato è ormai consumato due volte dalle macchine, dagli SDK e dagli agenti.

Quale stile di API scegliere? Matrice decisionale

SituazioneScegliere
CRUD pubblico su risorseREST – la lingua franca, amica della cache
Molti tipi di client, ognuno con forme diverseI selection set di GraphQL
Maglia interna di servizi a throughput elevatoContratti gRPC
Tempo reale, bidirezionale, sempre connessoWebSocket (o uno strato di live query al di sopra)
Partner enterprise con requisiti WS-*SOAP – perché lo dice il contratto
Una schermata che ha bisogno di cinque serviziUn endpoint composito o un backend-for-frontend

Limiti e trade-off

  • Un contratto lega anche il provider. Ogni campo pubblicato diventa qualcosa da cui qualcuno dipende; l’evoluzione passa dalla disciplina di versionamento, non da modifiche silenziose.
  • Le API di rete ereditano la rete. Latenza, guasti parziali e retry fanno parte della semantica di ogni chiamata remota – le chiamate di funzione locali non hanno mai avuto bisogno di politiche di timeout.
  • L’astrazione nasconde il costo. Una chiamata dall’aspetto innocente può diramarsi in lavoro costoso; i consumatori vedono il menu, non il conto della cucina – ed è a questo che servono i rate limit e le quote.
  • La superficie di sicurezza cresce con la superficie esposta. Ogni endpoint è una porta; le chiavi identificano ma non autorizzano, quindi un’autenticazione vera (token in stile OAuth 2.0, permessi per singolo utente) e la validazione degli input sono il minimo indispensabile.
  • Le forme fisse non calzano a tutti i consumatori. I trade-off di overfetching e underfetching nel design degli endpoint sono un argomento a sé – si veda la voce gemella.

Le API su Back4app

Back4app è una piattaforma open-source di Backend as a Service (BaaS) che combina database gestito, API REST e GraphQL generate automaticamente, autenticazione, archiviazione di file e funzioni serverless con Cloud Code. La mossa che definisce tutto è che l’API è generata, non costruita: si definisce un modello di dati e la piattaforma lo espone subito come endpoint REST e schema GraphQL – la chiamata sezionata qui sopra è il vero formato che Back4app scambia sulla rete – con chiavi, token utente e permessi a livello di classe che fanno rispettare il contratto al confine. Gli SDK consumano quell’API in modo idiomatico da ogni piattaforma principale, e le operazioni su misura diventano funzioni Cloud Code: nuovi endpoint in un file, la stessa disciplina di contratto, nessun server da far girare.

Domande frequenti

Che cosa significa API?

Application Programming Interface, in italiano interfaccia di programmazione delle applicazioni. "Application" indica qualsiasi software con una funzione propria; "interface" è il contratto fra due di essi – l'insieme definito di richieste che uno può fare e di risposte che l'altro promette di restituire. La parte sulla programmazione è il punto: è un'interfaccia per il software, mentre una UI è un'interfaccia per le persone.

Che cos'è un'API in parole semplici?

Un messaggero con un menu. Un programma espone l'elenco delle cose che sa fare – recuperare questi dati, eseguire quell'azione – e altri programmi le invocano attraverso richieste definite, senza mai vedere come il lavoro avviene all'interno. L'illustrazione classica: un'app meteo non misura il cielo; chiama l'API di un servizio meteorologico.

Come funziona un'API?

Per richiesta e risposta. Il client invia una richiesta a un endpoint – un URL che nomina la risorsa – con un metodo che dichiara l'intenzione, header che portano metadati e credenziali e a volte un corpo di dati. Il server la valida, fa il lavoro e restituisce un codice di stato più un corpo di risposta, di solito JSON. Ogni integrazione mai usata si riduce a questo ciclo.

Quali sono alcuni esempi di API?

L'accesso tramite un provider di identità, il passaggio di pagamento di un checkout, una mappa incorporata in un'app di consegne, un widget meteo – ognuno è un'applicazione che chiama l'API di un'altra. Gli esempi lato sviluppo sono ancora più diretti: una piattaforma di backend che espone il database come endpoint HTTP interrogati dall'app mobile.

Qual è la differenza tra un'API e un SDK?

L'API è il contratto; un SDK è la cassetta degli attrezzi per consumarlo. Un SDK avvolge le chiamate API in funzioni idiomatiche del linguaggio e aggiunge gestione della sessione, retry e tipi. Un'API si chiama via rete; un SDK si importa nel codice – e sotto il cofano l'SDK fa chiamate API.

Quali sono i tipi di API?

Per pubblico: pubbliche (aperte a qualsiasi sviluppatore), partner (condivise con aziende sotto contratto), interne (private di una sola organizzazione) e composite (che raggruppano più chiamate). Per stile: REST, GraphQL, gRPC, SOAP e le API WebSocket. E oltre il web: le API di librerie e di sistemi operativi – le interfacce esistevano molto prima che HTTP le trasportasse.

Che cos'è un endpoint di un'API?

L'URL specifico dove un'API riceve le richieste per una risorsa: /users/42 è l'endpoint dell'utente 42. Endpoint più metodo definiscono un'operazione: GET /users/42 lo legge, DELETE /users/42 lo elimina. Gli endpoint sono la superficie indirizzabile dell'intera interfaccia.

Che cos'è una chiave API?

Una stringa generata che il client invia con ogni richiesta perché il provider identifichi il chiamante, misuri il consumo e applichi limiti o revoche. È più identificazione che autorizzazione – le API di produzione aggiungono sopra un'autenticazione vera, come i token emessi via OAuth, per i permessi per singolo utente.

Termini correlati

Confronta con

Fonti di approfondimento

Pronto a costruire il tuo backend?

Avvia il tuo progetto su Back4app in pochi minuti: database, autenticazione, API e Cloud Code inclusi. Nessuna carta di credito richiesta.

Scritto e revisionato da Back4app Engineering, Back4app Engineering · Pubblicato il 2026-10-02