API-utveckling

Utveckla applikationer på AWS

Ricardo Sueiras

Principal Technologist

API Gateway-integrationer

 

API Gateway-integrationer

  • Flera alternativ för serverdelintegration
  • HTTP: valfri offentligt nåbar endpoint
  • AWS-tjänst-API:er som DynamoDB eller SNS
  • Lambda-funktioner
  • Privata resurser via VPC-länkar
  • Simulerade svar utan en riktig serverdel
Utveckla applikationer på AWS

Integrationstyper: proxy

 

API-integrationstyper

  • Integrationstypen styr hur mycket kontroll API Gateway har
  • Proxytyper: AWS_PROXY och HTTP_PROXY
  • Hela HTTP-förfrågan skickas direkt till serverdelen
  • API Gateway fungerar som en transparent genomströmning
  • Serverdelen skapar svaret
Utveckla applikationer på AWS

Integrationstyper: icke-proxy

  • Icke-proxytyper: AWS och HTTP
  • Du konfigurerar transformationer för förfrågningar och svar
  • Styrs av mappningsmallar
  • Mallar skrivs i Velocity Template Language (VTL)

 

API-integrationstyper

Utveckla applikationer på AWS

Förfrågningsvalidering

 

Förfrågningsvalidering

  • Validera förfrågningar innan de når serverdelen
  • Fångar upp saknade obligatoriska fält
  • Fångar upp ogiltigt JSON-format
  • Fångar upp felaktiga parametertyper
  • Fel returnerar vanligtvis 400 Bad Request
Utveckla applikationer på AWS

Förfrågningsvalidering

 

Förfrågningsvalidering

  • Validering kan omfatta:
    • Headers
    • Query string-parametrar
    • Förfrågningskropp
    • JSON-schema
Utveckla applikationer på AWS

Förfrågningsvalidering

 

Förfrågningsvalidering

  • Validering ger nytta genom att:
    • Minska ogiltiga förfrågningar till serverdelen
    • Sänka Lambda-exekveringskostnaden
    • Öka API-tillförlitligheten
Utveckla applikationer på AWS

Transformationer

  • Omforma förfrågningar och svar utan att röra serverdelskoden
    • Ändra nyttolaststruktur
    • Byt namn på fält
    • Transformera headers
    • Konvertera dataformat
    • Dölj implementationsdetaljer
  • Drivs av VTL-mappningsmallar

 

API-transformation

Utveckla applikationer på AWS

Felhantering

 

API-fel

  • Två felkategorier
    • Gateway-fel: genereras av API Gateway
    • Integrationsfel: serverdelsfel
  • Vanliga gateway-fel:
    • 400 Bad Request: misslyckad förfrågningsvalidering
    • 429 Too Many Requests: begränsningsgräns överskriden
Utveckla applikationer på AWS

Felhantering

 

API-fel

  • Vanliga integrationsfel:
    • 502 Bad Gateway: felformat eller ogiltigt svar
    • 503 Service Unavailable: serverdelen otillgänglig eller överbelastad
    • 504 Gateway Timeout: tidsgränsen på 29 sekunder överskreds
    • Regionala och privata REST API:er kan förlänga gränsen utöver 29 sekunder
Utveckla applikationer på AWS

Loggning

  • Exekveringsloggar och CloudWatch-mätvärden är viktiga felsökningsverktyg
  • API Gateway integreras med CloudWatch för:
    • Loggar
    • Mätvärden
    • Exekveringsspårning

 

 

API-observerbarhet

Utveckla applikationer på AWS

Loggning

  • CloudWatch-loggar hjälper dig att felsöka:
    • Misslyckade integrationer
    • Transformationsfel
    • Auktoriseringsfel
    • Lambda-exekveringsproblem

 

 

API-observerbarhet

Utveckla applikationer på AWS

Steg: hantera API:er i olika miljöer

 

Steg

  • En API-definition används i flera miljöer
  • Steg är hur API Gateway hanterar dessa miljöer
Utveckla applikationer på AWS

Steg: hantera API:er i olika miljöer

 

Steg

  • En API-definition används i flera miljöer
  • Steg är hur API Gateway hanterar dessa miljöer
  • Ett steg är en namngiven referens
  • Pekar på en driftsättningsögonblicksbild av din API-konfiguration
Utveckla applikationer på AWS

Steg: hantera API:er i olika miljöer

 

Steg

  • En API-definition används i flera miljöer
  • Steg är hur API Gateway hanterar dessa miljöer
  • Ett steg är en namngiven referens
  • Pekar på en driftsättningsögonblicksbild av din API-konfiguration
  • Vanliga stegnamn:
    • Dev
    • Test
    • QA och Prod
Utveckla applikationer på AWS

Steg: hantera API:er i olika miljöer

 

Steg

  • En API-definition används i flera miljöer
  • Steg är hur API Gateway hanterar dessa miljöer
  • Ett steg är en namngiven referens
  • Pekar på en driftsättningsögonblicksbild av din API-konfiguration
  • Vanliga stegnamn: Dev, Test, QA, Prod
  • Anrops-URL:en speglar varje steg
Utveckla applikationer på AWS

Steg: hantera API:er i olika miljöer

 

Steg

  • En API-definition används i flera miljöer
  • Steg är hur API Gateway hanterar dessa miljöer
  • Ett steg är en namngiven referens
  • Pekar på en driftsättningsögonblicksbild av din API-konfiguration
  • Vanliga stegnamn: Dev, Test, QA, Prod
  • Anrops-URL:en speglar varje steg
  • Flera steg kan peka på samma driftsättning för omedelbar återställning
Utveckla applikationer på AWS

Steg: hantera API:er i olika miljöer

 

Steg

  • Ändringar träder i kraft först när de driftsätts till ett steg
Utveckla applikationer på AWS

Stegfunktioner

  • Varje steg konfigureras oberoende
  • Konfigurationen inkluderar stegvariabler
  • Stegvariabler är nyckel-värde-par
  • Dirigera en driftsättning till olika serverdelar
  • Ingen omdriftsättning krävs för miljöändringar

 

steg

Utveckla applikationer på AWS

Stegfunktioner

  • Canary-driftsättningar
    • Endast REST API:er
    • Skicka en andel av trafiken till en ny driftsättning
    • Befordra till fullständig release
    • Ta bort canary för att återställa

 

steg

Utveckla applikationer på AWS

Stegfunktioner

  • Begränsning
    • Anges på stegnivå
    • Gäller alla metoder, med åsidosättning per metod

 

steg

Utveckla applikationer på AWS

Stegfunktioner

  • Begränsning
    • Anges på stegnivå
    • Gäller alla metoder, med åsidosättning per metod
  • Cachelagring
    • Endast REST API:er
    • Lagrar serverdelssvar på stegnivå
    • Klienter kringgår med Cache-Control
    • TTL från 0 till 3600 sekunder, standard 300

 

steg

Utveckla applikationer på AWS

Stegfunktioner

  • Loggning erbjuder två lägen
    • Åtkomstloggar
    • Byggs från $context-variabler, skickas till en CloudWatch-logggrupp
    • Exekveringsloggar
    • Fångar fullständig information om förfrågningar och svar

 

steg

Utveckla applikationer på AWS

Nu kör vi en övning!

Utveckla applikationer på AWS

Preparing Video For Download...