python
from fastapi import FastAPI
app = FastAPI()
@app.get('/hallo')
def hallo(name: str = 'Welt'):
return {'gruss': f'Hallo {name}'}
Starten: uv run fastapi dev main.py. Danach http://localhost:8000/hallo?name=Anna im Browser öffnen. Die interaktive Dokumentation findest du unter http://localhost:8000/docs. Der Entwicklungsserver startet bei Codeänderungen automatisch neu.
Was passiert:
@app.get('/hallo')ist ein Dekorator: Er registriert die darunter stehende Funktion für HTTP-GET-Anfragen auf dem Pfad/hallo.- Der Parameter
nametaucht nicht im Pfad auf, also erwartet FastAPI ihn als Abfrageparameter (?name=...). Der Typstrund der Standardwert machen ihn optional. - Gibst du ein Dictionary oder eine Liste zurück, macht FastAPI automatisch JSON daraus.
| Woher kommt ein Funktionsparameter? | Erkennung | Beispiel |
|---|---|---|
| Pfad | Name steht in { } im Pfad |
@app.get('/kunden/{kunden_id}') mit kunden_id: int |
| Abfrageparameter | Alles andere mit einfachem Typ | q: str = '' bedeutet ?q=... |
| Formularfeld | Standardwert Form(...) |
name: str = Form(...) |
| JSON-Body | Typ ist eine Pydantic-Klasse | kunde: KundeNeu |
| Rohe Anfrage | Typ ist Request |
request: Request |
FastAPI wandelt Werte in den angegebenen Typ um und prüft sie. Bei kunden_id: int führt /kunden/abc automatisch zur Antwort 422 mit Fehlertext, ohne dass du etwas programmierst.
Parameter von @app.get(path, ...) und @app.post(...) |
Bedeutung |
|---|---|
path |
URL-Pfad, mit {name} für Pfadparameter |
response_class |
Art der Antwort, z. B. HTMLResponse für Seiten |
status_code |
Statuscode bei Erfolg, z. B. 201 |
tags, summary |
Beschriftung in der automatischen Dokumentation |