Cloud & IT Cert Prep · Lektion

REST API vs HTTP API vs WebSocket API

Forstå afvejningerne mellem REST API (funktionsrigt), HTTP API (lav latenstid og lave omkostninger) og WebSocket API (tovejs), og vælg passende.

Lektion 1 af 413 trin

REST API vs HTTP API vs WebSocket API er en gratis Cloud & IT Cert Prep-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cloud & IT Cert Prep, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.

Hvorfor API Gateway findes

Amazon API Gateway er en fuldt administreret tjeneste, der lader dig oprette, publicere, sikre og overvåge API'er i enhver skala. Den fungerer som hovedindgangen til dine backendtjenester – Lambda-funktioner, EC2-instanser, HTTP-backends eller enhver AWS-tjeneste. API Gateway håndterer trafikstyring, godkendelse, begrænsning af hastighed, overvågning og API-versionering, så din backend kan fokusere på forretningslogikken i stedet for API-infrastruktur.

REST API: traditionel API med mange funktioner

REST API (det oprindelige API Gateway-produkt) har det bredeste funktionssæt: transformation af forespørgsler og svar med mapping-skabeloner, begrænsning af hastighed pr. metode, forbrugsplaner med API-nøgler, caching af svar, WAF-integration, X-Ray-sporing, ressourcepolitikker og gensidig TLS med klientcertifikater. REST API'er understøtter alle integrationstyper: Lambda, HTTP, AWS-tjeneste, Mock og Lambda Proxy. Brug REST API, når du har brug for avancerede funktioner som transformation, caching eller forbrugsplaner.

HTTP API: alternativ med lav latenstid og lave omkostninger

HTTP API blev udviklet som et enklere, billigere og hurtigere alternativ til REST API. Den understøtter kun integrationer med Lambda proxy og HTTP proxy – ingen AWS-tjenesteintegrationer og ingen Mock. De vigtigste fordele er op til 70 % lavere omkostninger end REST API, lavere latenstid, indbygget JWT-godkendelse med OIDC og OAuth 2.0 (uden behov for en Lambda-godkender i almindelige godkendelsesscenarier) samt automatisk implementering. Hvis du ikke har brug for caching, forbrugsplaner eller transformation af forespørgsler og svar, er HTTP API det bedre valg.

# 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: tovejskommunikation i realtid

WebSocket API vedligeholder permanente, tovejsforbindelser mellem klienter og serveren. I modsætning til HTTP (forespørgsel-svar) lader WebSocket serveren skubbe meddelelser til tilsluttede klienter når som helst, uden at klienten behøver at hente dem gentagne gange. API Gateway administrerer WebSocket-forbindelser og router meddelelser til Lambda-funktioner baseret på ruteudtryk. Brug WebSocket API'er til applikationer i realtid: chatapplikationer, live-dashboarder, samarbejdsredigering, spil og aktiekurser.

WebSocket-ruter og forbindelsesstyring

WebSocket API'er har tre indbyggede ruter: $connect (udløses, når en klient åbner en forbindelse), $disconnect (udløses, når en forbindelse lukkes) og $default (opfanger meddelelser uden match). Du kan tilføje brugerdefinerede ruter som sendmessage, der er knyttet til bestemte Lambda-funktioner. Brug administrations-API'et @connections til at sende meddelelser tilbage til tilsluttede klienter fra din Lambda-funktion ved hjælp af klientens forbindelses-id.

# 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
    )

Sammenligning af funktioner: REST kontra HTTP kontra WebSocket

De vigtigste forskelle i korte træk:

  • REST API: alle funktioner (caching, forbrugsplaner, transformationer, WAF), højere omkostninger, understøtter alle integrationstyper
  • HTTP API: kun Lambda-/HTTP-proxy, 70 % billigere, indbygget JWT-godkendelse, lavere latenstid, ingen caching eller forbrugsplaner
  • WebSocket API: permanente tovejsforbindelser, understøtter server-push, faktureres pr. million meddelelser og pr. minut forbindelsestid

Til SAA-C03-eksamen: HTTP-spørgsmål uden realtid eller avancerede funktioner → HTTP API. Push i realtid → WebSocket. Komplekse API-funktioner → REST API.

Stadier og implementeringer

API Gateway-API'er implementeres i stadier (f.eks. dev, staging, prod). Hvert stadie har sin egen URL og indstillinger for begrænsning af hastighed og kan referere til et bestemt øjebliksbillede af en implementering. Brug stadievariabler (svarende til miljøvariabler) til at angive backend-slutpunkter pr. stadie – peg f.eks. stadiet dev på et dev-Lambda-alias og prod på prod-aliaset uden at duplikere API-konfigurationen.

# 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'

Brugerdefinerede domænenavne og tilknytninger af basisstier

Som standard indeholder API Gateway-URL'er API-id'et (f.eks. abc123.execute-api.us-east-1.amazonaws.com). Til produktionsbrug kan du oprette et brugerdefineret domænenavn med et ACM-certifikat og knytte det til dit API og stadie. Brug tilknytninger af basisstier til at hoste flere API'er under ét domæne (f.eks. api.example.com/orders → Orders API, api.example.com/users → Users API). Brugerdefinerede domænenavne kræver en Route 53-aliaspost, der peger på API Gateway-slutpunktet.

Edge-optimerede, regionale og private API'er

REST API'er kan implementeres med tre slutpunkttyper: Edge-Optimised (CloudFront-frontend til global distribution, standard), Regional (uden CloudFront, lavere latenstid for klienter i samme region, eller når du tilføjer din egen CloudFront) og Private (kun tilgængelig fra din VPC via et interface-VPC-slutpunkt, til interne mikrotjenester). HTTP API'er understøtter Edge-Optimised og Regional. WebSocket API'er understøtter Regional og Private. Vælg Regional til API'er, der bruges fra samme region, eller når du bruger brugerdefinerede CloudFront-distributioner.

Canary-implementeringer med API Gateway

API Gateway REST API'er understøtter canary-implementeringer på et stadie. Du kan dirigere en procentdel af trafikken til en canary-implementering (en ny version), mens resten går til produktionsimplementeringen. Overvåg fejlprocenter og latenstid for canaryen; hvis den er stabil, kan du øge dens andel til 100 %. Hvis der opstår problemer, kan du rulle tilbage ved at sætte canary-vægten til 0. Dette svarer til vægtet routing med Lambda-aliaser og gør det muligt at opdatere API'er sikkert og gradvist uden at skifte mellem blue/green-miljøer.

Valg af den rigtige API-type til eksamen

Nøgleord i SAA-C03-eksamensspørgsmål, der identificerer API-typen: 'omkostningseffektivt, enkelt API' → HTTP API; 'tovejs i realtid', 'server-push' eller 'chat' → WebSocket API; 'transformation af forespørgsler', 'forbrugsplaner', 'begrænsning af hastighed med API-nøgle' eller 'caching af svar' → REST API. Når spørgsmålet blot handler om at eksponere Lambda som et HTTP-slutpunkt til lave omkostninger, vinder HTTP API. Når spørgsmålet omhandler komplekse funktioner til API-administration eller partnere, er REST API som regel det rigtige svar.

Hurtigt tjek

Test din forståelse af AWS Solutions Architect-konceptet (SAA-C03) fra denne lektion.

Opsummering af lektionen

I denne lektion har du lært, at REST API har hele API Gateways funktionssæt (caching, transformationer, forbrugsplaner og WAF) til en højere pris; HTTP API er 70 % billigere, har indbygget JWT-godkendelse og lavere latenstid og er ideel til Lambda-/HTTP-proxyscenarier uden avancerede funktioner; og WebSocket API muliggør server-push-kommunikation i realtid over permanente forbindelser til chat, spil og applikationer med live-data. Dernæst undersøger vi API Gateway-integrationer med Lambda, HTTP-backends og simulerede svar.

Gratis at komme i gang

Lær Cloud & IT Cert Prep med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
150
Lektioner
600

Ofte stillede spørgsmål

Er lektionen “REST API vs HTTP API vs WebSocket API” gratis?

Ja — hele teksten til “REST API vs HTTP API vs WebSocket API” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cloud & IT Cert Prep-kurset, skal du opgradere til CoddyKit PRO. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “REST API vs HTTP API vs WebSocket API”?

Forstå afvejningerne mellem REST API (funktionsrigt), HTTP API (lav latenstid og lave omkostninger) og WebSocket API (tovejs), og vælg passende. Du øver dig i Cloud & IT Cert Prep med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Cloud & IT Cert Prep?

Der kræves ingen tidligere erfaring. Cloud & IT Cert Prep på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “REST API vs HTTP API vs WebSocket API”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Cloud & IT Cert Prep-lektion?

Ja. Alle Cloud & IT Cert Prep-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. REST API vs HTTP API vs WebSocket API
  2. Integrationer: Lambda, HTTP og Mock
  3. Autorisation: IAM, Lambda Authorizers og Cognito
  4. Throttling, caching og brugsplaner
← Tilbage til Cloud & IT Cert Prep