Serverlös backend med AWS Lambda & API Gateway · Lektion

Transformering av förfrågningar och svar

Anpassa API Gateways nyttolaster för förfrågningar och svar med mappningsmallar (VTL) för integrering med olika backend-system.

Lektion 2 av 411 steg

Transformering av förfrågningar och svar är en gratis lektion i Serverlös backend med AWS Lambda & API Gateway på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Serverlös backend med AWS Lambda & API Gateway, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Serverlös backend med AWS Lambda & API Gateway innehåller totalt 4 lektioner.

Överbrygga dataklyftan

Föreställ er att era API-klienter talar ett datorspråk, medan backend-tjänsten förstår ett annat. Hur får ni dem att kommunicera smidigt?

API Gateways transformeringar av förfrågningar och svar fungerar som en universell översättare genom att ändra nyttolaster så att olika system blir kompatibla.

Introduktion till mappningsmallar

I centrum för transformeringarna står mappningsmallar. Det är textbaserade mallar som skrivs med Velocity Template Language (VTL).

Ni definierar en VTL-mall som talar om exakt för API Gateway hur inkommande data (förfrågningar) eller utgående data (svar) ska struktureras om eller ändras.

Transformering av förfrågningar

Transformeringar av förfrågningar ändrar de data som klienten skickar innan de når backend-tjänsten (till exempel en Lambda-funktion).

Detta är användbart för att:

  • Förenkla komplexa klientförfrågningar för en backend.
  • Lägga till specifika headers eller parametrar.
  • Konvertera dataformat (till exempel XML till JSON eller till en annan JSON-struktur).

VTL för mappning av förfrågningar

Här är ett enkelt VTL-exempel för en förfrågan. Det tar klientens id och qty och mappar dem till productId och quantity för er backend.

Variabeln $input ger er åtkomst till den inkommande förfrågningens body och parametrar.

#set($body = $input.json('$'))
{
  "productId": "$body.id",
  "quantity": $body.qty
}

Åtkomst till förfrågningskontexten

Förutom bodyn kan ni komma åt andra detaljer om förfrågan, till exempel sökvägsparametrar, frågesträngar och headers, med variabeln $context.

Detta gör att ni kan berika backendens indata med värdefull kontextuell information från API-anropet.

#set($body = $input.json('$'))
{
  "userId": "$context.authorizer.claims.sub",
  "resourcePath": "$context.resourcePath",
  "itemId": "$input.params('itemId')",
  "requestedQuantity": $body.qty
}

Transformering av svar

Transformeringar av svar ändrar de data som backend-tjänsten returnerar innan de skickas tillbaka till klienten.

Detta är viktigt för att:

  • Standardisera API-svar från olika backend-system.
  • Dölja känsliga interna detaljer för klienter.
  • Konvertera backend-utdata till ett klientvänligt format.

VTL för svarsmappning

Precis som för förfrågningar använder ni VTL för att transformera svar. Här mappas fältet result från backend till ett mer generellt fält med namnet data för klienten.

Variabeln $input i en svarsmall hänvisar till backendens utdata.

#set($body = $input.json('$'))
{
  "status": "success",
  "data": $body.result
}

Villkorad svarsmappning

API Gateway låter er definiera olika svarsmallar baserat på backendens HTTP-statuskod. Det innebär att ni kan ha en specifik mall för lyckade svar (till exempel 200 OK) och en annan för fel (till exempel 400 Bad Request).

Det ger detaljerad kontroll över hur olika resultat presenteras för klienten.

#if($input.path('$.statusCode') == 200)
{
  "message": "Operation successful."
}
#else
{
  "error": "$input.path('$.errorMessage')"
}
#end

Bästa praxis för VTL

När ni skriver VTL-mallar:

  • Håll det enkelt: Undvik komplex logik och delegera vid behov till er backend.
  • Testa noggrant: Använd API Gateways funktion för testanrop.
  • Använd $util.urlEncode: Koda värden när ni placerar dem i URL:er eller frågesträngar.
  • Hantera null-värden: Använd $!variable för att skriva ut en tom sträng om en variabel är null.

Snabbkontroll

Ni har lärt er hur transformeringar i API Gateway kan omforma data. Vilka av följande är viktiga fördelar med att använda transformeringar av förfrågningar och svar?

Sammanfattning: Bemästra transformeringar

Ni har lärt er hur API Gateway-transformeringar, som bygger på VTL-mappningsmallar, är avgörande för att bygga flexibla och robusta API:er.

Genom att forma både inkommande förfrågningar och utgående svar kan ni säkerställa smidig kommunikation mellan olika klienter och backend-tjänster, förbättra underhållbarheten och minska komplexiteten.

Gratis att börja

Lär dig Serverlös backend med AWS Lambda & API Gateway med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Transformering av förfrågningar och svar” gratis?

Ja – hela texten till ”Transformering av förfrågningar och svar” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Serverlös backend med AWS Lambda & API Gateway, kan Ni uppgradera till CoddyKit PRO. Kursen i Serverlös backend med AWS Lambda & API Gateway innehåller totalt 4 lektioner.

Vad lär jag mig i ”Transformering av förfrågningar och svar”?

Anpassa API Gateways nyttolaster för förfrågningar och svar med mappningsmallar (VTL) för integrering med olika backend-system. Ni övar på Serverlös backend med AWS Lambda & API Gateway med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Serverlös backend med AWS Lambda & API Gateway?

Du behöver inga förkunskaper. Utbildningen i Serverlös backend med AWS Lambda & API Gateway på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Transformering av förfrågningar och svar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Serverlös backend med AWS Lambda & API Gateway-lektionen?

Ja. Varje Serverlös backend med AWS Lambda & API Gateway-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Cachning och begränsning av trafik
  2. Transformering av förfrågningar och svar
  3. Anpassade domännamn och edge-optimering
  4. WebSocket-API:er för kommunikation i realtid
← Tillbaka till Serverlös backend med AWS Lambda & API Gateway