REST API, HTTP API ja WebSocket API
Ymmärrätte REST API:n (monipuolinen), HTTP API:n (pieni viive ja alhaiset kustannukset) ja WebSocket API:n (kaksisuuntainen) kompromissit ja valitsette sopivan vaihtoehdon.
REST API, HTTP API ja WebSocket API on ilmainen AWS Solutions Architect-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu AWS Solutions Architect-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.
Miksi API Gateway on olemassa
Amazon API Gateway on täysin hallinnoitu palvelu, jonka avulla voitte luoda, julkaista, suojata ja valvoa minkä tahansa mittakaavan rajapintoja. Se toimii taustapalvelujenne etupihana – taustapalveluina voivat olla Lambda-funktiot, EC2-instanssit, HTTP-taustajärjestelmät tai mikä tahansa AWS-palvelu. API Gateway huolehtii liikenteenhallinnasta, valtuutuksesta, liikenteen rajoittamisesta, valvonnasta ja API-versioinnista, joten taustajärjestelmänne voi keskittyä liiketoimintalogiikkaan API-infrastruktuurin sijaan.
REST API: monipuolinen perinteinen rajapinta
REST API (alkuperäinen API Gateway -tuote) tarjoaa laajimman ominaisuusvalikoiman: pyyntöjen ja vastausten muunnokset kuvausmallien avulla, menetelmäkohtaisen liikenteen rajoittamisen, API-avaimia käyttävät käyttösuunnitelmat, vastausten välimuistin, WAF-integraation, X-Ray-jäljityksen, resurssikäytännöt ja asiakasvarmenteisiin perustuvan keskinäisen TLS:n. REST API:t tukevat kaikkia integraatiotyyppejä: Lambda, HTTP, AWS-palvelu, Mock ja Lambda Proxy. Käyttäkää REST API:a, kun tarvitsette edistyneitä ominaisuuksia, kuten muunnoksia, välimuistia tai käyttösuunnitelmia.
HTTP API: pienen viiveen ja kustannusten vaihtoehto
HTTP API suunniteltiin REST API:a yksinkertaisemmaksi, edullisemmaksi ja nopeammaksi vaihtoehdoksi. Se tukee vain Lambda proxy - ja HTTP proxy -integraatioita – ei AWS-palveluintegraatioita eikä Mock-integraatiota. Keskeisiä etuja ovat enintään 70 % pienemmät kustannukset kuin REST API:ssa, pienempi viive, natiivisti sisäänrakennettu OIDC- ja OAuth 2.0 -pohjainen JWT-valtuutus (yleisissä todennustilanteissa ei tarvita Lambda-valtuuttajaa) sekä automaattinen käyttöönotto. Jos ette tarvitse välimuistia, käyttösuunnitelmia tai pyyntöjen ja vastausten muunnoksia, HTTP API on parempi valinta.
# 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: kaksisuuntainen reaaliaikainen viestintä
WebSocket API ylläpitää pysyviä, kaksisuuntaisia yhteyksiä asiakkaiden ja palvelimen välillä. Toisin kuin HTTP:ssä (pyyntö–vastaus), WebSocketin avulla palvelin voi työntää viestejä yhdistettyihin asiakkaisiin milloin tahansa ilman, että asiakas kyselee niitä. API Gateway hallinnoi WebSocket-yhteyksiä ja reitittää viestit Lambda-funktioihin reittilausekkeiden perusteella. Käyttäkää WebSocket API:a reaaliaikaisissa sovelluksissa, kuten chat-sovelluksissa, reaaliaikaisissa koontinäytöissä, yhteismuokkauksessa, peleissä ja osakekursseissa.
WebSocket-reitit ja yhteyksien hallinta
WebSocket API:ssa on kolme sisäänrakennettua reittiä: $connect (käynnistyy, kun asiakas avaa yhteyden), $disconnect (käynnistyy, kun yhteys suljetaan) ja $default (käsittelee viestit, joille ei löydy täsmäävää reittiä). Voitte lisätä mukautettuja reittejä, kuten sendmessage-reitin, joka yhdistetään tiettyyn Lambda-funktioon. Käyttäkää @connections-hallinta-API:a viestien lähettämiseen takaisin yhdistetyille asiakkaille Lambda-funktiosta asiakkaan yhteystunnuksen avulla.
# 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
)Ominaisuuksien vertailu: REST vs HTTP vs WebSocket
Keskeiset erot lyhyesti:
- REST API: täydet ominaisuudet (välimuisti, käyttösuunnitelmat, muunnokset, WAF), suuremmat kustannukset, tukee kaikkia integraatiotyyppejä
- HTTP API: vain Lambda-/HTTP-proxy, 70 % edullisempi, sisäänrakennettu JWT-todennus, pienempi viive, ei välimuistia tai käyttösuunnitelmia
- WebSocket API: pysyvät kaksisuuntaiset yhteydet, tukee palvelimen lähettämiä viestejä, veloitus perustuu miljoonaan viestiin ja yhteysajan minuutteihin
SAA-C03-kokeessa: HTTP-kysymykset ilman reaaliaikaisuutta tai edistyneitä ominaisuuksia → HTTP API. Reaaliaikainen palvelimen lähettämä sisältö → WebSocket. Monimutkaiset API-ominaisuudet → REST API.
Vaiheet ja käyttöönotot
API Gateway -rajapinnat otetaan käyttöön vaiheisiin (esimerkiksi dev, staging, prod). Jokaisella vaiheella on oma URL-osoitteensa ja liikenteen rajoitusasetuksensa, ja se voi viitata tiettyyn käyttöönoton tilannevedokseen. Käyttäkää vaihemuuttujia (ympäristömuuttujien tapaan) taustapäätepisteiden parametrisoimiseen vaihekohtaisesti – esimerkiksi ohjatkaa dev-vaihe dev-Lambda-aliakseen ja prod-vaihe prod-aliakseen ilman API-määrityksen monistamista.
# 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'Mukautetut toimialuenimet ja peruspolkujen määritykset
API Gatewayn URL-osoitteet sisältävät oletusarvoisesti API-tunnuksen (esimerkiksi abc123.execute-api.us-east-1.amazonaws.com). Tuotantokäyttöä varten luokaa mukautettu toimialuenimi, jota tukee ACM-varmenne, ja yhdistäkää se API:inne ja vaiheeseenne. Käyttäkää peruspolkujen määrityksiä useiden API:en isännöimiseen yhden toimialueen alla (esimerkiksi api.example.com/orders → Orders API, api.example.com/users → Users API). Mukautetut toimialuenimet edellyttävät Route 53 -alias-tietuetta, joka osoittaa API Gateway -päätepisteeseen.
Reunan optimoimat, alueelliset ja yksityiset API:t
REST API:t voidaan ottaa käyttöön kolmella päätepistetyypillä: Edge-Optimised (CloudFront-käyttöliittymä maailmanlaajuista jakelua varten, oletus), Regional (ei CloudFrontia, pienempi viive saman alueen asiakkaille tai omaa CloudFrontia käytettäessä) ja Private (käytettävissä vain VPC:n sisältä interface VPC endpointin kautta, sisäisiä mikropalveluja varten). HTTP API:t tukevat Edge-Optimised- ja Regional-tyyppejä. WebSocket API:t tukevat Regional- ja Private-tyyppejä. Valitkaa Regional API:ille, joita käytetään samalta alueelta, tai kun käytätte mukautettuja CloudFront-jakeluja.
Canary-käyttöönotot API Gatewaylla
API Gatewayn REST API:t tukevat canary-käyttöönottoja vaiheessa. Voitte ohjata tietyn prosenttiosuuden liikenteestä canary-käyttöönottoon (uuteen versioon) ja lopun liikenteen tuotantokäyttöönottoon. Seuratkaa canaryn virhetasoja ja viivettä; jos kaikki toimii vakaasti, siirtäkää se kokonaan käyttöön. Jos ilmenee ongelmia, palauttakaa aiempi versio asettamalla canaryn painoksi 0. Tämä vastaa Lambda-aliaksen painotettua reititystä ja mahdollistaa API:n turvalliset, vaiheittaiset päivitykset ilman blue/green-ympäristöjen vaihtamista.
Sopivan API-tyypin valitseminen kokeessa
SAA-C03-kokeen avainsanat API-tyypin tunnistamiseen: ”kustannustehokas yksinkertainen API” → HTTP API; ”reaaliaikainen kaksisuuntainen viestintä”, ”palvelimen lähettämät viestit” tai ”chat” → WebSocket API; ”pyynnön muunnos”, ”käyttösuunnitelmat”, ”API-avainten liikenteen rajoitus”, ”vastausten välimuisti” → REST API. Kun kysymys koskee yksinkertaisesti Lambdan tarjoamista HTTP-päätepisteenä pienin kustannuksin, HTTP API on oikea valinta. Kun kysymykseen liittyy monimutkaisia API-hallinnan ominaisuuksia tai kumppaneita, REST API on yleensä oikea valinta.
Pikatarkistus
Testatkaa tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteiden ymmärtämistänne.
Oppitunnin kertaus
Tässä oppitunnissa opitte, että REST API tarjoaa API Gatewayn täydet ominaisuudet (välimuisti, muunnokset, käyttösuunnitelmat, WAF) suuremmilla kustannuksilla, HTTP API on 70 % edullisempi ja tarjoaa sisäänrakennetun JWT-todennuksen sekä pienemmän viiveen, joten se sopii Lambda-/HTTP-proxy-tilanteisiin ilman edistyneitä ominaisuuksia, ja WebSocket API mahdollistaa palvelimen lähettämät reaaliaikaiset viestit pysyvien yhteyksien kautta chat-, peli- ja reaaliaikaisissa datasovelluksissa. Seuraavaksi tutustumme API Gatewayn Lambda-, HTTP-taustajärjestelmä- ja Mock-vastausintegraatioihin.
Opi AWS Solutions Architect tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”REST API, HTTP API ja WebSocket API” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa AWS Solutions Architect-oppimispolun 3 oppituntia, myös oppitunnin “REST API, HTTP API ja WebSocket API”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”REST API, HTTP API ja WebSocket API”?
Ymmärrätte REST API:n (monipuolinen), HTTP API:n (pieni viive ja alhaiset kustannukset) ja WebSocket API:n (kaksisuuntainen) kompromissit ja valitsette sopivan vaihtoehdon. Harjoittelet AWS Solutions Architect-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni AWS Solutions Architect-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin AWS Solutions Architect-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”REST API, HTTP API ja WebSocket API”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä AWS Solutions Architect-oppitunnilla?
Kyllä. Jokainen AWS Solutions Architect-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- REST API, HTTP API ja WebSocket API
- Integraatiot: Lambda, HTTP ja Mock
- Valtuutus: IAM, Lambda Authorizers ja Cognito
- Rajoittaminen, välimuisti ja käyttösuunnitelmat