0Pricing
Python Academy · Lektion

FastAPI-Projekteinrichtung und erster Endpunkt

Installieren Sie FastAPI, erstellen Sie ein Projekt und schreiben Sie Ihren ersten GET-Endpunkt.

FastAPI-Projekteinrichtung und erster Endpunkt ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist FastAPI?

FastAPI ist ein modernes Python-Webframework zum Erstellen von REST-APIs. Es bietet automatische OpenAPI-Dokumentation, typgeprüfte Request- und Response-Modelle über Pydantic sowie native asynchrone Performance.

# pip install fastapi uvicorn
from fastapi import FastAPI

app = FastAPI()

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

Server starten

Starten Sie den Server mit uvicorn. Das Flag --reload startet ihn während der Entwicklung bei Codeänderungen automatisch neu.

# 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-Methoden

Versehen Sie Routenfunktionen mit @app.get, @app.post, @app.put, @app.delete oder @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}

Pfadparameter

Deklarieren Sie Pfadparameter in der Routenzeichenkette mit {name} und als Funktionsargumente mit Typannotationen.

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-Parameter

Funktionsparameter, die nicht im Pfad enthalten sind, werden zu Query-Parametern.

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-Request-Body

Verwenden Sie ein Pydantic-BaseModel als Parametertyp, um einen JSON-Request-Body zu deklarieren und zu validieren.

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

Pydantic-Validierungsfehler

Wenn der Request-Body nicht dem Schema entspricht, gibt FastAPI automatisch den Fehler 422 Unprocessable Entity mit einer detaillierten Fehlermeldung zurück.

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

Response-Modelle

Verwenden Sie response_model=, um zu deklarieren, was der Endpunkt zurückgibt. FastAPI validiert die Response und filtert zusätzliche Felder heraus.

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

Statuscodes

Legen Sie den standardmäßigen Erfolgsstatuscode mit status_code= fest. Importieren Sie gängige Statuscodes aus 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

Werfen Sie HTTPException, um eine Fehler-Response mit einem benutzerdefinierten Statuscode und einer Detailmeldung zurückzugeben.

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]}

Automatische Dokumentation

FastAPI erzeugt automatisch Swagger UI unter /docs und ReDoc unter /redoc aus Ihren Routenannotationen.

# 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

Schnelltest

Wie deklarieren Sie in FastAPI einen erforderlichen JSON-Request-Body-Parameter?

Zusammenfassung

FastAPI-Routen sind dekorierte Funktionen: Pfadparameter stehen in der URL, Query-Parameter werden als typisierte Argumente angegeben und Request-Bodies als Pydantic-Modelle. Werfen Sie bei Fehlern eine HTTPException. Die Swagger UI wird automatisch unter /docs erzeugt.

Häufig gestellte Fragen

Ist die Lektion „FastAPI-Projekteinrichtung und erster Endpunkt“ kostenlos?

Ja — der vollständige Text von „FastAPI-Projekteinrichtung und erster Endpunkt“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „FastAPI-Projekteinrichtung und erster Endpunkt“?

Installieren Sie FastAPI, erstellen Sie ein Projekt und schreiben Sie Ihren ersten GET-Endpunkt. Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „FastAPI-Projekteinrichtung und erster Endpunkt“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. FastAPI-Projekteinrichtung und erster Endpunkt
  2. Pfadparameter, Query-Parameter und Request-Bodies
  3. Dependency Injection und Authentifizierung
  4. Asynchrone Endpunkte und Datenbankintegration
← Zurück zu Python Academy