AWS Solutions Architect · leksjon

REST API vs HTTP API vs WebSocket API

Forstå avveiningene mellom REST API (funksjonsrikt), HTTP API (lav latenstid og lave kostnader) og WebSocket API (toveis), og velg riktig alternativ.

Leksjon 1 av 413 trinn

REST API vs HTTP API vs WebSocket API er en gratis leksjon i AWS Solutions Architect på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AWS Solutions Architect, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.

Hvorfor API Gateway finnes

Amazon API Gateway er en fullstendig administrert tjeneste som lar Dem opprette, publisere, sikre og overvåke API-er i alle skalaer. Den fungerer som inngangsporten til backend-tjenestene Deres – Lambda-funksjoner, EC2-instanser, HTTP-backend-systemer eller andre AWS-tjenester. API Gateway håndterer trafikkstyring, autorisering, hastighetsbegrensning, overvåking og API-versjonering, slik at backend-systemet kan fokusere på forretningslogikk i stedet for API-infrastruktur.

REST API: Funksjonsrik tradisjonell API

REST API (det opprinnelige API Gateway-produktet) tilbyr det bredeste funksjonssettet: transformasjon av forespørsler og svar med mapping templates, hastighetsbegrensning per metode, usage plans med API-nøkler, hurtigbufring av svar, WAF-integrasjon, X-Ray-sporing, ressursbaserte policyer og gjensidig TLS med klientsertifikater. REST API-er støtter alle integrasjonstyper: Lambda, HTTP, AWS-tjeneste, Mock og Lambda Proxy. Bruk REST API når De trenger avanserte funksjoner som transformasjon, hurtigbufring eller usage plans.

HTTP API: Alternativ med lav latenstid og lave kostnader

HTTP API ble utviklet som et enklere, rimeligere og raskere alternativ til REST API. Det støtter bare integrasjonene Lambda proxy og HTTP proxy – ingen AWS-tjenesteintegrasjoner og ingen mock-integrasjon. Viktige fordeler er opptil 70 % lavere kostnad enn REST API, lavere latenstid, innebygd JWT-autorisering med OIDC og OAuth 2.0 (uten behov for en Lambda-autorisator i vanlige autentiseringsscenarier) og automatisk distribusjon. Hvis De ikke trenger hurtigbufring, usage plans eller transformasjon av forespørsler og svar, er HTTP API det beste valget.

# 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: Toveiskommunikasjon i sanntid

WebSocket API opprettholder vedvarende, toveis forbindelser mellom klienter og serveren. I motsetning til HTTP (forespørsel–svar) lar WebSocket serveren push’e meldinger til tilkoblede klienter når som helst, uten at klienten må spørre etter nye data. API Gateway administrerer WebSocket-forbindelser og ruter meldinger til Lambda-funksjoner basert på rutinguttrykk. Bruk WebSocket-API-er til sanntidsapplikasjoner som chat-apper, live-dashbord, samarbeidende redigering, spill og aksjekurser.

WebSocket-ruter og tilkoblingsadministrasjon

WebSocket-API-er har tre innebygde ruter: $connect (utløses når en klient åpner en forbindelse), $disconnect (utløses når en forbindelse lukkes) og $default (fanger opp meldinger uten samsvarende rute). De kan legge til egendefinerte ruter, for eksempel sendmessage, som knyttes til bestemte Lambda-funksjoner. Bruk administrasjons-API-et @connections til å sende meldinger tilbake til tilkoblede klienter fra Lambda-funksjonen Deres ved hjelp av klientens connection 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
    )

Funksjonssammenligning: REST kontra HTTP kontra WebSocket

Viktige forskjeller i korte trekk:

  • REST API: komplett funksjonssett (hurtigbufring, usage plans, transformasjoner, WAF), høyere kostnad og støtte for alle integrasjonstyper
  • HTTP API: bare Lambda-/HTTP-proxy, 70 % rimeligere, innebygd JWT-autentisering, lavere latenstid og ingen hurtigbufring eller usage plans
  • WebSocket API: vedvarende toveis forbindelser, støtte for push fra serveren og fakturering per million meldinger og per minutt tilkoblingstid

Til SAA-C03-eksamen: HTTP-spørsmål uten sanntid eller avanserte funksjoner → HTTP API. Push i sanntid → WebSocket. Komplekse API-funksjoner → REST API.

Stages og distribusjoner

API Gateway-API-er distribueres til stages (for eksempel dev, staging og prod). Hver stage har sin egen URL og innstillinger for hastighetsbegrensning, og kan referere til et bestemt distribusjonsøyeblikksbilde. Bruk stage variables (tilsvarende miljøvariabler) til å parameterisere backend-endepunkter per stage – pek for eksempel dev-stagen til et dev-Lambda-alias og prod til prod-aliaset uten å duplisere API-konfigurasjonen.

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

Egendefinerte domenenavn og tilordning av basebaner

Som standard inneholder API Gateway-URL-er API-ID-en (for eksempel abc123.execute-api.us-east-1.amazonaws.com). For produksjonsbruk kan De opprette et egendefinert domenenavn med et ACM-sertifikat og tilordne det til API-et og stagen. Bruk base path mappings til å være vert for flere API-er under ett domene (for eksempel api.example.com/orders → Orders API og api.example.com/users → Users API). Egendefinerte domenenavn krever en Route 53-aliasoppføring som peker til API Gateway-endepunktet.

Edge-optimaliserte, regionale og private API-er

REST API-er kan distribueres med tre endepunkttyper: Edge-Optimised (CloudFront som front-end for global distribusjon, standardvalget), Regional (uten CloudFront, lavere latenstid for klienter i samme region eller når De legger til Deres egen CloudFront) og Private (bare tilgjengelig fra VPC-en Deres via et grensesnittbasert VPC-endepunkt, for interne mikrotjenester). HTTP API-er støtter Edge-Optimised og Regional. WebSocket API-er støtter Regional og Private. Velg Regional for API-er som brukes fra samme region, eller når De bruker egendefinerte CloudFront-distribusjoner.

Canary-distribusjoner med API Gateway

API Gateway REST API-er støtter canary-distribusjoner på en stage. De kan rute en prosentandel av trafikken til en canary-distribusjon (en ny versjon), mens resten går til produksjonsdistribusjonen. Overvåk feilrater og latenstid for canary-en. Hvis den er stabil, kan De øke andelen til 100 %. Hvis det oppstår problemer, kan De rulle tilbake ved å sette canary-vekten til 0. Dette tilsvarer vektet ruting med Lambda-alias og muliggjør trygge, trinnvise API-oppdateringer uten å bytte mellom blue/green-miljøer.

Velge riktig API-type til eksamen

Nøkkelord i SAA-C03-eksamensoppgaver som identifiserer API-typen: «kostnadseffektiv enkel API» → HTTP API; «toveis kommunikasjon i sanntid», «push fra serveren» eller «chat» → WebSocket API; «transformasjon av forespørsler», «usage plans», «hastighetsbegrensning med API-nøkkel» eller «hurtigbufring av svar» → REST API. Når oppgaven ganske enkelt ber Dem «eksponere Lambda som et kostnadseffektivt HTTP-endepunkt», er HTTP API det riktige valget. Når oppgaven omhandler komplekse funksjoner for API-administrasjon eller partnere, er REST API vanligvis riktig.

Hurtigsjekk

Test forståelsen Deres av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.

Oppsummering av leksjonen

I denne leksjonen har De lært at REST API tilbyr hele funksjonssettet i API Gateway (hurtigbufring, transformasjoner, usage plans og WAF) til en høyere kostnad, at HTTP API er 70 % rimeligere med innebygd JWT-autentisering og lavere latenstid og egner seg godt for Lambda-/HTTP-proxy-scenarier uten avanserte funksjoner, og at WebSocket API muliggjør sanntidskommunikasjon med push fra serveren over vedvarende forbindelser for chat, spill og applikasjoner med livedata. Deretter skal vi utforske API Gateway-integrasjoner med Lambda, HTTP-backend-systemer og mock-svar.

Gratis å komme i gang

Lær deg AWS Solutions Architect med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «REST API vs HTTP API vs WebSocket API» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien AWS Solutions Architect, inkludert «REST API vs HTTP API vs WebSocket API», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.

Hva lærer jeg i «REST API vs HTTP API vs WebSocket API»?

Forstå avveiningene mellom REST API (funksjonsrikt), HTTP API (lav latenstid og lave kostnader) og WebSocket API (toveis), og velg riktig alternativ. Du øver på AWS Solutions Architect med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med AWS Solutions Architect?

Ingen tidligere erfaring er nødvendig. AWS Solutions Architect på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «REST API vs HTTP API vs WebSocket API»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne AWS Solutions Architect-leksjonen?

Ja. Alle AWS Solutions Architect-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. REST API vs HTTP API vs WebSocket API
  2. Integrasjoner: Lambda, HTTP og Mock
  3. Autorisasjon: IAM, Lambda-authorizers og Cognito
  4. Begrensning, caching og bruksplaner
← Tilbake til AWS Solutions Architect