RESTful APIs mit FastAPI und Python entwickeln
RESTful APIs mit FastAPI und Python entwickeln
Ein praxisorientierter Leitfaden zum Erstellen leistungsstarker Web-APIs mit Python und dem FastAPI-Framework
Inhaltsverzeichnis
Kapitel 1: Was ist eine RESTful API?
- Grundlagen von REST
- HTTP-Methoden: GET, POST, PUT, DELETE
- Statuscodes und Konventionen
- JSON als Standardformat
Kapitel 2: Warum FastAPI?
- Vorteile gegenüber Flask und Django REST Framework
- Async-Unterstützung, automatische Doku, Typisierung
- Voraussetzungen und Installation
- Projektstruktur und Einstieg
Kapitel 3: Erste Schritte mit FastAPI
- Eine einfache API mit GET-Route
- Starten mit uvicorn
- Swagger UI und Redoc automatisch nutzen
- Mini-Projekt: „Hallo Welt“-API mit Parametern
Kapitel 4: API-Routen und HTTP-Methoden definieren
- Pfadparameter, Query-Parameter, Body-Daten
- POST, PUT, DELETE umsetzen
- Statuscodes und Response-Typen setzen
- Mini-Projekt: Notiz-API mit CRUD-Operationen
Kapitel 5: Datenvalidierung mit pydantic
- Was ist Pydantic? Warum ist es so mächtig?
- Datenmodelle mit BaseModel
- Validierung, Typprüfung, automatische Fehlerantworten
- Mini-Projekt: Benutzerregistrierung mit Validierung
Kapitel 6: Strukturierung größerer Projekte
- Projektaufbau mit routers, schemas, services
- Dependency Injection mit Depends
- Mini-Projekt: Blog-API mit modularer Struktur
Kapitel 7: Datenbankintegration mit SQLModel / SQLAlchemy
- SQLite/PostgreSQL mit SQLModel oder SQLAlchemy verbinden
- Sessions, Models und Migrations
- Mini-Projekt: Aufgaben-API mit Datenbankanbindung
Kapitel 8: Authentifizierung und Autorisierung
- JWT (JSON Web Token) für Login/Logout
- Benutzerrollen, Passwort-Hashing
- Protected Endpoints mit Security Dependencies
- Mini-Projekt: Benutzerverwaltung mit geschützten Routen
Kapitel 9: FastAPI + AsyncIO in der Praxis
- Asynchrone Funktionen richtig verwenden
- Datenbankzugriffe asynchron gestalten
- Async + Background Tasks + WebSockets (Kurzüberblick)
- Mini-Projekt: Wetterdaten-API mit externem Async-Service
Kapitel 10: Testing, Deployment und Best Practices
- API-Tests mit pytest und TestClient
- CORS, Middleware, Logging
- Deployment mit Docker und uvicorn/gunicorn
- Mini-Projekt: API-Containerisierung und Test-Setup
Anhang A: FastAPI-Kommandos und Syntaxübersicht
- Starten, Debuggen, Importstrukturen
- FastAPI- und Pydantic-Referenz
Anhang B: HTTP-Statuscodes und deren Bedeutung
- Übersicht über alle relevanten Codes (200, 201, 400, 404, 422, 500 …)
Anhang C: Übungsaufgaben mit Lösungen
- Routen erweitern, Validierungen einbauen
- Authentifizierung einrichten
- Datenbank-API mit CRUD-Funktionalität
- Lösungen mit Kommentaren und Tests