REST API vs HTTP API vs WebSocket API
Comprenderete i compromessi tra REST API, ricca di funzionalità, HTTP API, a bassa latenza e basso costo, e WebSocket API, bidirezionale, e sceglierete quella appropriata.
REST API vs HTTP API vs WebSocket API è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Perché esiste API Gateway
Amazon API Gateway è un servizio completamente gestito che consente di creare, pubblicare, proteggere e monitorare API a qualsiasi livello di scalabilità. Funge da punto di accesso per i servizi backend: funzioni Lambda, istanze EC2, backend HTTP o qualsiasi servizio AWS. API Gateway gestisce il traffico, l’autorizzazione, il throttling, il monitoraggio e il versionamento delle API, permettendo al backend di concentrarsi sulla logica di business anziché sugli aspetti infrastrutturali delle API.
REST API: API tradizionale completa
REST API (il prodotto API Gateway originale) offre il set di funzionalità più ampio: trasformazione di richieste e risposte con mapping template, throttling per metodo, piani di utilizzo con chiavi API, caching delle risposte, integrazione con WAF, tracing con X-Ray, policy delle risorse e mutual TLS con certificati client. Le REST API supportano tutti i tipi di integrazione: Lambda, HTTP, servizi AWS, Mock e Lambda Proxy. Utilizzi REST API quando ha bisogno di funzionalità avanzate come trasformazione, caching o piani di utilizzo.
HTTP API: alternativa a bassa latenza e basso costo
HTTP API è stata progettata come alternativa più semplice, economica e veloce rispetto a REST API. Supporta solo le integrazioni Lambda proxy e HTTP proxy: niente integrazioni con servizi AWS e niente mock. I vantaggi principali sono: costi fino al 70% inferiori rispetto a REST API, latenza ridotta, autorizzazione JWT nativa basata su OIDC e OAuth 2.0 integrata (senza bisogno di un authorizer Lambda negli scenari di autenticazione comuni) e deployment automatico. Se non ha bisogno di caching, piani di utilizzo o trasformazione di richieste e risposte, HTTP API è la scelta migliore.
# Create a simple HTTP API
aws apigatewayv2 create-api \
--name 'MyHttpAPI' \
--protocol-type HTTP \
--target 'arn:aws:lambda:us-east-1:123456789012:function:MyLambda'WebSocket API: comunicazione bidirezionale in tempo reale
WebSocket API mantiene connessioni persistenti e bidirezionali tra client e server. A differenza di HTTP (richiesta-risposta), WebSocket consente al server di inviare messaggi ai client connessi in qualsiasi momento, senza che il client debba eseguire il polling. API Gateway gestisce le connessioni WebSocket e instrada i messaggi alle funzioni Lambda in base alle espressioni di routing. Utilizzi le WebSocket API per applicazioni in tempo reale: app di chat, dashboard live, modifica collaborativa, videogiochi e ticker azionari.
Routing WebSocket e gestione delle connessioni
Le WebSocket API dispongono di tre route integrate: $connect (attivata quando un client apre una connessione), $disconnect (attivata quando una connessione viene chiusa) e $default (intercetta i messaggi senza corrispondenza). Può aggiungere route personalizzate, come sendmessage, associate a specifiche funzioni Lambda. Utilizzi l’API di gestione @connections per inviare messaggi ai client connessi dalla sua funzione Lambda, usando l’ID di connessione del client.
# Send a message to a specific WebSocket client from Lambda
import boto3
gw_client = boto3.client(
'apigatewaymanagementapi',
endpoint_url='https://abc123.execute-api.us-east-1.amazonaws.com/prod'
)
def lambda_handler(event, context):
connection_id = event['requestContext']['connectionId']
gw_client.post_to_connection(
Data='{"type": "message", "text": "Hello!"}',
ConnectionId=connection_id
)Confronto delle funzionalità: REST vs HTTP vs WebSocket
Principali differenze a colpo d’occhio:
- REST API: funzionalità complete (caching, piani di utilizzo, trasformazioni, WAF), costi più elevati e supporto per tutti i tipi di integrazione
- HTTP API: solo proxy Lambda/HTTP, 70% più economica, autenticazione JWT integrata, latenza inferiore, senza caching né piani di utilizzo
- WebSocket API: connessioni bidirezionali persistenti, supporto per il push dal server, addebito per milione di messaggi e per minuto di durata della connessione
Per l’esame SAA-C03: domande HTTP senza funzionalità in tempo reale o avanzate → HTTP API. Push in tempo reale → WebSocket. Funzionalità API complesse → REST API.
Stage e deployment
Le API di API Gateway vengono distribuite in stage (ad esempio dev, staging, prod). Ogni stage ha un URL e impostazioni di throttling propri e può fare riferimento a uno snapshot specifico del deployment. Utilizzi le variabili di stage (simili alle variabili d’ambiente) per parametrizzare gli endpoint backend in base allo stage: ad esempio, può indirizzare lo stage dev a un alias Lambda di sviluppo e prod all’alias di produzione senza duplicare la configurazione dell’API.
# REST API: create a deployment and stage
aws apigateway create-deployment \
--rest-api-id 'abc123' \
--stage-name 'prod'
# Set stage variable
aws apigateway update-stage \
--rest-api-id 'abc123' \
--stage-name 'prod' \
--patch-operations 'op=replace,path=/variables/lambdaAlias,value=prod'Nomi di dominio personalizzati e mapping dei base path
Per impostazione predefinita, gli URL di API Gateway contengono l’ID dell’API (ad esempio abc123.execute-api.us-east-1.amazonaws.com). Per l’uso in produzione, crei un nome di dominio personalizzato associato a un certificato ACM e lo mappi alla sua API e al relativo stage. Utilizzi i mapping dei base path per ospitare più API sotto un unico dominio (ad esempio api.example.com/orders → API Orders, api.example.com/users → API Users). I nomi di dominio personalizzati richiedono un record alias di Route 53 che punti all’endpoint di API Gateway.
API ottimizzate per Edge, regionali e private
Le REST API possono essere distribuite con tre tipi di endpoint: Edge-Optimised (front-end CloudFront per la distribuzione globale, impostazione predefinita), Regional (senza CloudFront, con latenza inferiore per i client nella stessa regione o quando si aggiunge un proprio CloudFront) e Private (accessibili solo dall’interno del proprio VPC tramite un VPC endpoint di interfaccia, per microservizi interni). Le HTTP API supportano Edge-Optimised e Regional. Le WebSocket API supportano Regional e Private. Scelga Regional per le API utilizzate dalla stessa regione o quando usa distribuzioni CloudFront personalizzate.
Deployment canary con API Gateway
Le REST API di API Gateway supportano i deployment canary su uno stage. Può instradare una percentuale del traffico verso un deployment canary (nuova versione), mentre il resto continua a essere diretto al deployment di produzione. Monitori i tassi di errore e la latenza del canary; se la situazione è stabile, lo promuova al 100%. Se si verificano problemi, esegua il rollback impostando il peso del canary su 0. Questo è analogo al routing con pesi degli alias Lambda e consente di aggiornare le API in modo sicuro e graduale, senza alternare ambienti blue/green.
Scelta del tipo di API corretto per l’esame
Parole chiave delle domande dell’esame SAA-C03 per identificare il tipo di API: 'API semplice ed economica' → HTTP API; 'bidirezionale in tempo reale', 'push dal server' o 'chat' → WebSocket API; 'trasformazione delle richieste', 'piani di utilizzo', 'throttling con chiavi API' o 'caching delle risposte' → REST API. Quando la domanda chiede semplicemente di esporre Lambda come endpoint HTTP a basso costo, HTTP API è la scelta vincente. Quando la domanda riguarda funzionalità complesse di gestione delle API o partner, in genere la risposta corretta è REST API.
Verifica rapida
Verifichi la sua comprensione dei concetti AWS Solutions Architect (SAA-C03) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che REST API offre l’intero set di funzionalità di API Gateway (caching, trasformazioni, piani di utilizzo e WAF) a un costo più elevato; HTTP API costa il 70% in meno, include l’autenticazione JWT e offre una latenza inferiore, risultando ideale negli scenari con proxy Lambda/HTTP privi di funzionalità avanzate; infine, WebSocket API consente la comunicazione in tempo reale con push dal server tramite connessioni persistenti, per applicazioni di chat, videogiochi e dati live. Nella prossima lezione esploreremo le integrazioni di API Gateway con Lambda, backend HTTP e risposte mock.
Domande Frequenti
La lezione «REST API vs HTTP API vs WebSocket API» è gratuita?
Sì — il testo completo di «REST API vs HTTP API vs WebSocket API» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Cosa imparerò in «REST API vs HTTP API vs WebSocket API»?
Comprenderete i compromessi tra REST API, ricca di funzionalità, HTTP API, a bassa latenza e basso costo, e WebSocket API, bidirezionale, e sceglierete quella appropriata. Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?
Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «REST API vs HTTP API vs WebSocket API»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?
Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- REST API vs HTTP API vs WebSocket API
- Integrazioni: Lambda, HTTP e Mock
- Autorizzazione: IAM, Lambda Authorizer e Cognito
- Throttling, caching e piani di utilizzo