FastAPI-prosjekt og første endepunkt
Installer FastAPI, opprett et prosjekt og skriv ditt første GET-endepunkt.
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=searchPydantic-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 outStatuskoder
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 successHTTPException
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 schemaHurtigsjekk
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.
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
- FastAPI-prosjekt og første endepunkt
- Stiparametere, spørringsparametere og forespørselskropper
- Avhengighetsinjeksjon og autentisering
- Asynkrone endepunkter og databaseintegrasjon