0Pricing
AWS Solutions Architect · Lezione

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 AWS Solutions Architect 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 AWS Solutions Architect, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AWS Solutions Architect 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 AWS Solutions Architect, passa a CoddyKit PRO. Il corso AWS Solutions Architect 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 AWS Solutions Architect 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 AWS Solutions Architect?

Non è richiesta alcuna esperienza precedente. AWS Solutions Architect 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 AWS Solutions Architect?

Sì. Ogni lezione AWS Solutions Architect 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

  1. REST API vs HTTP API vs WebSocket API
  2. Integrazioni: Lambda, HTTP e Mock
  3. Autorizzazione: IAM, Lambda Authorizer e Cognito
  4. Throttling, caching e piani di utilizzo
← Torna a AWS Solutions Architect