Der praxisorientierte Kurs zeigt, wie leistungsfähige und skalierbare APIs mit Python entwickelt werden. Wir vergleichen die beiden populären Frameworks FastAPI und Flask und zeigen ihre Stärken und Einsatzgebiete. Anhand von Hands-on Übungen werden eigene RESTful APIs gebaut, für Performance und Skalierbarkeit optimiert und ein fundiertes Verständnis für moderne API-Architekturen in Python vermittelt.
1 Überblick und Vergleich: Flask vs. FastAPI
- Historie und Zielsetzungen beider Frameworks
- Synchron vs. asynchrones Programmiermodell
- Unterschiede in Routing, Middleware, Dependency Injection
- Community, Erweiterbarkeit und Ecosystem
- Wann eignet sich welches Framework?
2 Architektur moderner, skalierbarer APIs
- Layered Architecture: Router, Services, Repositories
- API-Design-Prinzipien (REST, stateless, idempotent)
- OpenAPI / Swagger-Integration out-of-the-box
- Trennung von Business- und Infrastruktur-Logik
- Caching, Rate-Limiting, Authentifizierung
3 Asynchrone Verarbeitung und Performance-Tuning
- Einführung in async/await in Python
- WSGI vs. ASGI – Unterschiede und Implikationen
- Performancevorteile durch Async I/O (z. B. bei Datenbankzugriffen, HTTP-Requests)
- Einsatz von Background Tasks und Queues
- Vergleich von Servern: Uvicorn, Gunicorn, Hypercorn
4 Praxisnahe Entwicklung von REST-APIs mit beiden Frameworks
- Projekt-Setup und Strukturierung für Flask und FastAPI
- Routen-Definition, Path-Parameter, Query-Parameter
- CRUD-Endpunkte auf Basis eines Beispiels (z. B. «ToDo»-App, Blog, Shop)
- Datenbankanbindung mit SQLAlchemy oder Tortoise ORM
- Einbindung externer APIs / Services
5 Validierung, Serialisierung und Dokumentation mit Pydantic & Swagger
- Einführung in Pydantic: Typisierung, Validierung, Defaults
- Erstellung von Request- und Response-Modellen
- Automatische OpenAPI-Generierung und Swagger UI
- Nutzung von Tags, Beschreibungstexten und Beispielen
- Effiziente Validierung der Daten
6 Testbarkeit und Erweiterbarkeit im Fokus
- Unit-Tests und Integrationstests für API-Endpunkte
- Test-Clients in FastAPI und Flask
- Mocking externer Abhängigkeiten
- Strukturierung für Erweiterbarkeit: Services, Blueprints, Routers
- Dependency Injection und Configuration Management
7 Benchmarking und Skalierungsszenarien
- API-Benchmarking mit Tools wie ab, wrk, locust, k6
- Vergleich der Laufzeitleistung von FastAPI vs. Flask
- Skalierung mit Gunicorn, Uvicorn Workers, Docker & Kubernetes
- Load Balancing und horizontale Skalierung
- Healthchecks und Readiness-Probes
8 Best Practices für produktionsreife API-Projekte
- Logging, Monitoring, Tracing (z.B. mit Prometheus, OpenTelemetry)
- Umgang mit Fehlern & Exceptions (globale Handler, strukturierte Fehlerausgaben)
- Security-Aspekte: CORS, Auth, HTTPS, Rate-Limiting
- Continuous Integration / Deployment (CI/CD) mit Docker & GitHub Actions
- Versionierung von APIs (URI, Header, Media Type)