Veröffentlicht · wird verbessert
Framework · Seit 2018
FastAPI ist ein performantes Python-Webframework für APIs, das Typhinweise für Validierung, Serialisierung und automatische API-Dokumentation nutzt.
FastAPI ist ein modernes Framework zum Erstellen von Web-APIs mit Python. Sebastián Ramírez hat es 2018 erstmals veröffentlicht, seitdem wird es als Open-Source-Projekt mit einer großen Community weiterentwickelt. Für die Webschicht baut es auf Starlette auf, für die Datenvalidierung auf Pydantic. Die Typhinweise an den Funktionsparametern genügen, damit Anfragen umgewandelt und geprüft, Antworten serialisiert und eine OpenAPI-Beschreibung der API erzeugt werden.
FastAPI eignet sich besonders dort, wo Eingabevalidierung und Dokumentation wichtig sind: REST-Backends, Microservices, das Bereitstellen von Machine-Learning-Modellen und interne Werkzeuge. Da es auf ASGI läuft, verarbeiten async-Endpunkte viele gleichzeitige Verbindungen effizient, während gewöhnliche def-Funktionen weiterhin funktionieren. Mit dem Dependency-Injection-System lassen sich Datenbanksitzungen, Authentifizierung und Einstellungen sauber auslagern und in Tests austauschen.
Für den Einstieg legen Sie eine virtuelle Umgebung an, installieren FastAPI mit pip install "fastapi[standard]", starten fastapi dev main.py und öffnen /docs, um Ihre Endpunkte direkt aus der interaktiven Dokumentation aufzurufen. Das offizielle Tutorial - User Guide führt Schritt für Schritt von Pfadparametern über Sicherheit und Datenbanken bis zum Testen und ist dafür gedacht, der Reihe nach gelesen zu werden. Wer mit Python-Typhinweisen und Pydantic-Modellen vertraut ist, versteht den Großteil von FastAPI schnell.
Parametertypen und Pydantic-Modelle reichen aus, um Anfragedaten umzuwandeln und zu prüfen; bei ungültigen Eingaben gibt es ausführliche Fehlermeldungen.
Aus dem Code entsteht ein OpenAPI-Schema, das unter /docs (Swagger UI) und /redoc als interaktive Dokumentation bereitsteht.
Datenbanksitzungen, Authentifizierung oder gemeinsame Parameter werden mit Depends deklariert, pro Anfrage aufgelöst und lassen sich in Tests ersetzen.
Auf Starlette und ASGI aufgebaut, verarbeiten async-def-Endpunkte viele gleichzeitige Verbindungen effizient; normale def-Funktionen laufen daneben.
Legen Sie im Projektordner eine virtuelle Python-Umgebung an und aktivieren Sie sie. Der Befehl unten gilt für macOS und Linux; unter Windows aktivieren Sie sie mit .venv\Scripts\activate.
python -m venv .venv && source .venv/bin/activateInstallieren Sie FastAPI mit den standard-Extras. Dabei kommen häufig genutzte Abhängigkeiten wie der Uvicorn-Server und das Kommandozeilenwerkzeug fastapi mit.
pip install "fastapi[standard]"Erstellen Sie main.py und starten Sie den Entwicklungsserver. Er lädt bei Codeänderungen automatisch neu, und unter http://127.0.0.1:8000/docs finden Sie die interaktive API-Dokumentation.
fastapi dev main.pyFastAPI() erzeugt die Anwendung, und der Dekorator @app.get verbindet einen Pfad und eine HTTP-Methode mit einer Funktion. Das zurückgegebene Dictionary wird zur JSON-Antwort. Im zweiten Endpunkt wandelt item_id: int den Pfadwert in eine Ganzzahl um und prüft ihn, während q mit seinem Standardwert zu einem optionalen Query-Parameter wird. Starten Sie fastapi dev main.py und probieren Sie beide Endpunkte unter /docs aus.
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, world!"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
pip install "fastapi[standard]"
fastapi dev main.pySechs Kapitel führen dich von der Installation bis zu den Kernkonzepten von FastAPI.
Stelle Fragen, teile Erfahrungen und tausche Meinungen zu FastAPI aus.
Noch keine Diskussionen. Starte die erste.
0 Kommentare
Anmelden · Melde dich an, um einen Kommentar zu schreiben.
Schreib den ersten Kommentar.