Python Academy · leksjon

FastAPI-prosjekt og første endepunkt

Installer FastAPI, opprett et prosjekt og skriv ditt første GET-endepunkt.

Leksjon 1 av 413 trinn

FastAPI-prosjekt og første endepunkt er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 1 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 Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva er FastAPI?

FastAPI er et moderne Python-nettverksrammeverk for å bygge REST-API-er. Det tilbyr automatisk OpenAPI-dokumentasjon, typesjekkede modeller for forespørsler og svar via Pydantic samt asynkron ytelse.

# pip install fastapi uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello, FastAPI"}

Kjøre serveren

Kjør med uvicorn. Flagget --reload starter serveren automatisk på nytt når kode endres under utvikling.

# main.py
from fastapi import FastAPI
app = FastAPI()

@app.get("/health")
def health(): return {"status": "ok"}

# Terminal:
# uvicorn main:app --reload
# → http://127.0.0.1:8000
# → http://127.0.0.1:8000/docs  (Swagger UI)

HTTP-metoder

Dekorer rutefunksjoner med @app.get, @app.post, @app.put, @app.delete eller @app.patch.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(): return []

@app.post("/items")
def create_item(): return {"id": 1}

@app.delete("/items/{item_id}")
def delete_item(item_id: int): return {"deleted": item_id}

Path-parametere

Deklarer path-parametere i rutestrengen med {name} og som funksjonsargumenter med typeannotasjoner.

from fastapi import FastAPI
app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id, "name": "Alice"}

# GET /users/42  → {"user_id": 42, "name": "Alice"}

Query-parametere

Funksjonsparametere som ikke finnes i path-en, blir query-parametere.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(skip: int = 0, limit: int = 10, q: str | None = None):
    return {"skip": skip, "limit": limit, "q": q}

# GET /items?skip=5&limit=20&q=search

Pydantic-forespørselskropp

Bruk en Pydantic BaseModel som parametertype for å deklarere og validere en JSON-forespørselskropp.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float
    in_stock: bool = True

@app.post("/items")
def create_item(item: Item):
    return {"received": item.model_dump()}

Valideringsfeil i Pydantic

Hvis forespørselskroppen ikke samsvarer med skjemaet, returnerer FastAPI automatisk 422 Unprocessable Entity med en detaljert feilmelding.

# POST /items with body {"name": 123}
# → HTTP 422 Unprocessable Entity
# {
#   "detail": [
#     {
#       "type": "string_type",
#       "loc": ["body","name"],
#       "msg": "Input should be a valid string"
#     }
#   ]
# }

Responsmodeller

Bruk response_model= for å deklarere hva endepunktet returnerer. FastAPI validerer svaret og filtrerer bort ekstra felt.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class UserOut(BaseModel):
    id: int
    name: str

@app.get("/users/{uid}", response_model=UserOut)
def get_user(uid: int):
    return {"id": uid, "name": "Alice", "password": "secret"}  # password filtered out

Statuskoder

Angi standardstatuskoden for vellykkede svar med status_code=. Importer vanlige koder fra fastapi.status.

from fastapi import FastAPI, status
app = FastAPI()

@app.post("/items", status_code=status.HTTP_201_CREATED)
def create_item():
    return {"id": 1}

# HTTP 201 Created is returned on success

HTTPException

Kast HTTPException for å returnere et feilsvar med en egendefinert statuskode og detaljmelding.

from fastapi import FastAPI, HTTPException
app = FastAPI()

fake_db = {1: "Alice"}

@app.get("/users/{uid}")
def get_user(uid: int):
    if uid not in fake_db:
        raise HTTPException(status_code=404, detail="User not found")
    return {"name": fake_db[uid]}

Automatisk dokumentasjon

FastAPI genererer Swagger UI på /docs og ReDoc på /redoc automatisk fra ruteannotasjonene.

# After starting with uvicorn:
# http://localhost:8000/docs     — Swagger UI (try the API live)
# http://localhost:8000/redoc    — ReDoc (clean docs view)
# http://localhost:8000/openapi.json  — raw OpenAPI schema

Hurtigsjekk

Hvordan deklarerer man en obligatorisk JSON-forespørselskroppparameter i FastAPI?

Oppsummering

FastAPI-ruter er dekorerte funksjoner: path-parametere i URL-en, query-parametere som typede argumenter og forespørselskropper som Pydantic-modeller. Kast HTTPException ved feil. Swagger UI genereres automatisk på /docs.

Gratis å komme i gang

Lær deg Python 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
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «FastAPI-prosjekt og første endepunkt» gratis?

Ja – hele teksten i «FastAPI-prosjekt og første endepunkt» 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 Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «FastAPI-prosjekt og første endepunkt»?

Installer FastAPI, opprett et prosjekt og skriv ditt første GET-endepunkt. Du øver på Python Academy 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 Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy 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 1 av 4.

Hvor lang tid tar leksjonen «FastAPI-prosjekt og første endepunkt»?

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 Python Academy-leksjonen?

Ja. Alle Python Academy-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. FastAPI-prosjekt og første endepunkt
  2. Stiparametere, spørringsparametere og forespørselskropper
  3. Avhengighetsinjeksjon og autentisering
  4. Asynkrone endepunkter og databaseintegrasjon
← Tilbake til Python Academy