Serverløs backend med AWS Lambda og API Gateway · Lektion

Implementering af API og forretningslogik

Udvikl Lambda-funktionerne og API Gateway-konfigurationerne, der driver kerneforretningslogikken i Deres serverless-mikrotjeneste.

Lektion 2 af 411 trin

Implementering af API og forretningslogik er en gratis Serverløs backend med AWS Lambda og API Gateway-lektion på CoddyKit. Dette er lektion 2 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 Serverløs backend med AWS Lambda og API Gateway, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Serverløs backend med AWS Lambda og API Gateway-kurset indeholder 4 lektioner i alt.

Fra design til implementering

I den forrige lektion designede vi en serverløs mikrotjeneste. Nu er det tid til at føre designet ud i livet!

Denne lektion fokuserer på at udvikle de faktiske Lambda-funktioner og konfigurere API Gateway til at håndtere mikrotjenestens centrale forretningslogik.

API Gateway: Mikrotjenestens hovedindgang

API Gateway fungerer som det sikre indgangspunkt til din serverløse mikrotjeneste. Den modtager HTTP-forespørgsler og sender dem videre til den korrekte backend-tjeneste, typisk en AWS Lambda-funktion.

  • Den definerer dit API's slutpunkter (stier og metoder).
  • Den håndterer validering og videresendelse af forespørgsler.
  • Den integreres direkte med Lambda-funktioner.

Lambda: Kernen i forretningslogikken

Dine Lambda-funktioner indeholder mikrotjenestens faktiske forretningslogik. Hver funktion håndterer typisk et bestemt API-slutpunkt og en bestemt handling (f.eks. GET /products/{id}, POST /products).

Når API Gateway udløser en Lambda-funktion, sender den alle oplysninger om forespørgslen i et event-objekt.

Forstå Lambda-hændelsesobjektet

Når du bruger Lambda Proxy Integration sammen med API Gateway, indeholder det event-objekt, der sendes til din Lambda-funktion, omfattende oplysninger om den indgående HTTP-forespørgsel.

  • httpMethod: HTTP-metoden (GET, POST, PUT, DELETE).
  • pathParameters: Eventuelle variabler fra URL-stien.
  • queryStringParameters: Parametre fra URL'ens forespørgselsstreng.
  • body: Forespørgslens body (som en JSON-streng).

Implementering af et GET-API-slutpunkt

Lad os oprette en simpel Lambda-funktion til at håndtere en GET-forespørgsel, f.eks. at hente et produkt efter dets id. Vi udtrækker product_id fra pathParameters.

Prøv at køre dette eksempel:

import json

def lambda_handler(event, context):
    product_id = None
    if event.get('pathParameters'):
        product_id = event['pathParameters'].get('id')

    if product_id:
        # In a real app, you'd fetch from a DB
        product_data = {
            "id": product_id,
            "name": f"Sample Product {product_id}",
            "price": 29.99
        }
        return {
            "statusCode": 200,
            "headers": { "Content-Type": "application/json" },
            "body": json.dumps(product_data)
        }
    else:
        return {
            "statusCode": 400,
            "headers": { "Content-Type": "application/json" },
            "body": json.dumps({"message": "Missing product ID"})
        }

Udformning af API-svar

Din Lambda-funktion skal returnere en bestemt JSON-struktur, så API Gateway kan behandle svaret korrekt og sende det tilbage til klienten. Det er afgørende for en ensartet API-adfærd.

  • statusCode: HTTP-statuskoden (f.eks. 200 for succes, 400 for en ugyldig forespørgsel).
  • headers: En ordbog med HTTP-headere (f.eks. 'Content-Type': 'application/json').
  • body: De faktiske svardata, som skal være en JSON-streng.

Implementering af et POST-API-slutpunkt

Lad os nu se på håndtering af en POST-forespørgsel, som typisk bruges til at oprette nye ressourcer. Her analyserer vi forespørgslens body for at hente dataene for det nye produkt.

Prøv at køre dette eksempel (forestil dig en POST-forespørgsel med {"name": "New Item", "price": 10.50} som body):

import json

def lambda_handler(event, context):
    if event.get('body'):
        try:
            request_body = json.loads(event['body'])
            product_name = request_body.get('name')
            product_price = request_body.get('price')

            # In a real app, you'd save to a DB and get an ID
            new_product = {
                "id": "new-prod-123",
                "name": product_name,
                "price": product_price
            }
            return {
                "statusCode": 201, # 201 Created
                "headers": { "Content-Type": "application/json" },
                "body": json.dumps(new_product)
            }
        except json.JSONDecodeError:
            return {
                "statusCode": 400,
                "headers": { "Content-Type": "application/json" },
                "body": json.dumps({"message": "Invalid JSON in body"})
            }
    else:
        return {
            "statusCode": 400,
            "headers": { "Content-Type": "application/json" },
            "body": json.dumps({"message": "Request body is empty"})
        }

Robust fejlhåndtering i Lambda

Gode API'er giver tydelige fejlmeddelelser. I Lambda bør du fange potentielle problemer og returnere passende HTTP-statuskoder samt detaljerede fejlbeskrivelser.

  • Klientfejl (4xx): Ugyldige inputdata eller manglende parametre.
  • Serverfejl (5xx): Uventede problemer i din Lambda-funktion eller downstream-tjenester.

Returner altid en ensartet fejlstruktur, så håndteringen på klientsiden bliver nemmere.

Konfiguration af API Gateway til integration

Efter at have skrevet dine Lambda-funktioner skal du konfigurere API Gateway til at udløse dem. Det indebærer:

  1. Oprettelse af en ressource i API Gateway (f.eks. /products).
  2. Tilføjelse af en HTTP-metode (f.eks. GET, POST) til ressourcen.
  3. Indstilling af integrationstypen til Lambda Proxy.
  4. Angivelse af mål-Lambda-funktionens ARN.

Det skaber forbindelsen mellem dit API-slutpunkt og din funktions forretningslogik.

Udfordring: API-logik

Forestil dig en Lambda-funktion, der er designet til at opdatere en brugers profil. Hvis forespørgslens body er tom, hvilken HTTP-statuskode skal Lambda-funktionen returnere for at angive en fejl på klientsiden?

Opsummering af lektionen

Du har lært at implementere et serverløst mikrotjeneste-API med central forretningslogik! Vi gennemgik:

  • Rollerne for API Gateway og Lambda i en mikrotjeneste.
  • Udtrækning af data fra Lambda-event-objektet for forskellige HTTP-metoder.
  • Konstruktion af korrekte svar, der er kompatible med API Gateway.
  • Betydningen af robust fejlhåndtering.
  • En kort gennemgang af, hvordan API Gateway konfigureres til at udløse dine Lambda-funktioner.

Du er nu klar til at bygge funktionelle serverløse API-slutpunkter!

Gratis at komme i gang

Lær Serverløs backend med AWS Lambda og API Gateway 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
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Implementering af API og forretningslogik” gratis?

Ja — hele teksten til “Implementering af API og forretningslogik” 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 Serverløs backend med AWS Lambda og API Gateway-kurset, skal du opgradere til CoddyKit PRO. Serverløs backend med AWS Lambda og API Gateway-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Implementering af API og forretningslogik”?

Udvikl Lambda-funktionerne og API Gateway-konfigurationerne, der driver kerneforretningslogikken i Deres serverless-mikrotjeneste. Du øver dig i Serverløs backend med AWS Lambda og API Gateway 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å Serverløs backend med AWS Lambda og API Gateway?

Der kræves ingen tidligere erfaring. Serverløs backend med AWS Lambda og API Gateway 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 2 af 4.

Hvor lang tid tager lektionen “Implementering af API og forretningslogik”?

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 Serverløs backend med AWS Lambda og API Gateway-lektion?

Ja. Alle Serverløs backend med AWS Lambda og API Gateway-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. Design af en serverless-mikrotjeneste
  2. Implementering af API og forretningslogik
  3. Test og overvågning i produktion
  4. Sikring og skalering af produktions-API'et
← Tilbage til Serverløs backend med AWS Lambda og API Gateway