Serverløs backend med AWS Lambda & API Gateway · leksjon

Implementering av API og forretningslogikk

Utvikle Lambda-funksjonene og API Gateway-konfigurasjonene som utgjør kjernelogikken i den serverløse mikrotjenesten din.

Leksjon 2 av 411 trinn

Implementering av API og forretningslogikk er en gratis leksjon i Serverløs backend med AWS Lambda & API Gateway på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Serverløs backend med AWS Lambda & API Gateway, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Serverløs backend med AWS Lambda & API Gateway inneholder totalt 4 leksjoner.

Fra utforming til implementering

I forrige leksjon utformet vi en serverløs mikrotjeneste. Nå er det på tide å gjøre utformingen til virkelighet!

Denne leksjonen fokuserer på å utvikle de faktiske Lambda-funksjonene og konfigurere API Gateway for å håndtere kjernelogikken i mikrotjenesten.

API Gateway: Mikrotjenestens inngangsdør

API Gateway fungerer som det sikre inngangspunktet for den serverløse mikrotjenesten. Den mottar HTTP-forespørsler og ruter dem til riktig backend-tjeneste, vanligvis en AWS Lambda-funksjon.

  • Den definerer API-ets endepunkter (stier og metoder).
  • Den håndterer validering og ruting av forespørsler.
  • Den integreres direkte med Lambda-funksjoner.

Lambda: Kjernen for forretningslogikk

Lambda-funksjonene inneholder den faktiske forretningslogikken i mikrotjenesten. Hver funksjon håndterer vanligvis et bestemt API-endepunkt og en bestemt operasjon (for eksempel GET /products/{id} eller POST /products).

Når API Gateway utløser en Lambda-funksjon, sender den alle forespørselsdetaljene i et event-objekt.

Forstå Lambda-hendelsesobjektet

Når du bruker Lambda Proxy Integration med API Gateway, inneholder event-objektet som sendes til Lambda-funksjonen, omfattende detaljer om den innkommende HTTP-forespørselen.

  • httpMethod: HTTP-metoden (GET, POST, PUT, DELETE).
  • pathParameters: Eventuelle variabler fra URL-stien.
  • queryStringParameters: Parametere fra URL-ens spørrestreng.
  • body: Forespørselens innhold (som en JSON-streng).

Implementere et GET-API-endepunkt

La oss opprette en enkel Lambda-funksjon som håndterer en GET-forespørsel, for eksempel for å hente et produkt etter ID. Vi trekker ut product_id fra pathParameters.

Prøv å kjøre dette eksempelet:

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"})
        }

Utforme API-svar

Lambda-funksjonen må returnere en bestemt JSON-struktur for at API Gateway skal kunne behandle svaret riktig og sende det tilbake til klienten. Dette er avgjørende for en konsekvent API-oppførsel.

  • statusCode: HTTP-statuskoden (for eksempel 200 for et vellykket resultat eller 400 for en ugyldig forespørsel).
  • headers: En ordbok med HTTP-headere (for eksempel 'Content-Type': 'application/json').
  • body: De faktiske svardataene, som må være en JSON-streng.

Implementere et POST-API-endepunkt

La oss nå se på håndtering av en POST-forespørsel, som vanligvis brukes til å opprette nye ressurser. Her analyserer vi forespørselens body for å hente dataene for det nye produktet.

Prøv å kjøre dette eksempelet (se for deg en POST-forespørsel med {"name": "New Item", "price": 10.50} som innhold):

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 feilhåndtering i Lambda

Gode API-er gir tydelige feilmeldinger. I Lambda bør du fange opp mulige problemer og returnere passende HTTP-statuskoder og detaljerte feilmeldinger.

  • Klientfeil (4xx): Ugyldige data eller manglende parametere.
  • Serverfeil (5xx): Uventede problemer i Lambda-funksjonen eller nedstrøms tjenester.

Returner alltid en konsekvent feilstruktur, slik at håndteringen på klientsiden blir enklere.

Konfigurere API Gateway for integrasjon

Etter at du har skrevet Lambda-funksjonene, må du konfigurere API Gateway slik at den kan utløse dem. Dette innebærer:

  1. Opprette en ressurs i API Gateway (for eksempel /products).
  2. Legge til en HTTP-metode (for eksempel GET eller POST) for denne ressursen.
  3. Angi integrasjonstypen Lambda Proxy.
  4. Angi ARN-en til Lambda-funksjonen som skal brukes.

Dette oppretter forbindelsen mellom API-endepunktet og forretningslogikken i funksjonen.

Utfordring: API-logikk

Se for deg en Lambda-funksjon som er laget for å oppdatere profilen til en bruker. Hvis forespørselens innhold er tomt, hvilken HTTP-statuskode bør Lambda-funksjonen returnere for å angi en feil på klientsiden?

Oppsummering av leksjonen

Du har lært hvordan du implementerer kjerne-API-et og forretningslogikken for en serverløs mikrotjeneste! Vi gikk gjennom:

  • Rollene til API Gateway og Lambda i en mikrotjeneste.
  • Hvordan du trekker ut data fra Lambda-objektet event for ulike HTTP-metoder.
  • Hvordan du konstruerer riktige svar som er kompatible med API Gateway.
  • Betydningen av robust feilhåndtering.
  • En kort gjennomgang av hvordan API Gateway konfigureres til å utløse Lambda-funksjonene.

Du er nå klar til å bygge funksjonelle serverløse API-endepunkter!

Gratis å komme i gang

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

Ofte stilte spørsmål

Er leksjonen «Implementering av API og forretningslogikk» gratis?

Ja – hele teksten i «Implementering av API og forretningslogikk» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Serverløs backend med AWS Lambda & API Gateway-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Serverløs backend med AWS Lambda & API Gateway inneholder totalt 4 leksjoner.

Hva lærer jeg i «Implementering av API og forretningslogikk»?

Utvikle Lambda-funksjonene og API Gateway-konfigurasjonene som utgjør kjernelogikken i den serverløse mikrotjenesten din. Du øver på Serverløs backend med AWS Lambda & API Gateway 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 Serverløs backend med AWS Lambda & API Gateway?

Ingen tidligere erfaring er nødvendig. Serverløs backend med AWS Lambda & API Gateway 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 2 av 4.

Hvor lang tid tar leksjonen «Implementering av API og forretningslogikk»?

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

Ja. Alle Serverløs backend med AWS Lambda & API Gateway-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. Utforming av en serverløs mikrotjeneste
  2. Implementering av API og forretningslogikk
  3. Testing og overvåking i produksjon
  4. Sikring og skalering av produksjons-API-et
← Tilbake til Serverløs backend med AWS Lambda & API Gateway