Der praxisorientierte Kurs vermittelt, wie leistungsfähige und skalierbare APIs mit Python entwickelt werden. Die beiden populären Frameworks FastAPI und Flask werden verglichen, um ihre jeweiligen Stärken und Einsatzgebiete zu verstehen. Anhand von Hands-on-Übungen bauen die Teilnehmenden eigene RESTful APIs, optimieren diese für Performance und Skalierbarkeit und erhalten ein fundiertes Verständnis moderner API-Architekturen in Python.
1. Überblick und Vergleich: Flask vs. FastAPI
- Historie und Zielsetzungen der Frameworks
- Synchrones vs. asynchrones Programmiermodell
- Unterschiede in Routing, Middleware & Dependency Injection
- Community, Erweiterbarkeit & Ecosystem
- Wann eignet sich welches Framework?
2. Architektur moderner, skalierbarer APIs
- Layered Architecture: Router, Services, Repositories
- API-Design-Prinzipien (REST, stateless, idempotent)
- OpenAPI / Swagger-Unterstützung out-of-the-box
- Trennung von Business-/Infrastrukturlogik
- Caching, Rate-Limiting & Authentifizierung
3. Asynchrone Verarbeitung & Performance-Tuning
- Einführung in
- async/await
- in Python
- WSGI vs. ASGI – Unterschiede & Implikationen
- Vorteile durch Async I/O (z.B. bei Datenbankzugriffen)
- Nutzung von Background Tasks & Queues
- Server-Vergleich: Uvicorn, Gunicorn & Hypercorn
4. Praxisnahe Entwicklung von RESTful APIs
- Projektstrukturierung für Flask & FastAPI
- Routen-, Path-, Queryparameter definieren
- CRUD-Endpunkte am Beispiel einer ToDo-App oder eines Shops
- Datenbankanbindung mit SQLAlchemy oder Tortoise ORM
- Einbindung externer APIs / Services
5. Validierung, Serialisierung & Dokumentation
- Einführung in Pydantic: Typisierung & Validierung
- Erstellung von Request-/Response-Modellen
- Automatische OpenAPI-Dokumentation (Swagger UI)
- Nutzung von Tags/Beschreibungstexten/Beispielen
- Effiziente Datenvalidierung
6. Testbarkeit & Erweiterbarkeit im Fokus
- Unit-/Integrationstests für API-Endpunkte
- Test Clients für FastAPI/Flask nutzen
- Mocking externer Abhängigkeiten
- Strukturierung zur besseren Erweiterbarkeit (Blueprints/Routers)
- Dependency Injection
7. Benchmarking & Skalierungsstrategien
- Tools wie ab, wrk, locust oder k6 einsetzen
- Laufzeitleistungsvergleich zwischen Flask/FastAPI
- Skalierungen mit Gunicorn/Uvicorn Workers/Docker/Kubernetes
- Load Balancing/Horizontale Skalierung
- Healthchecks/Readiness-Probes
8. Best Practices für produktionsreife Projekte
- Logging/Metrics/Tracing z.B., Prometheus/OpenTelemetry
- Exception Handling (globale Fehlerhandler strukturierter Output )
- Sicherheitsmaßnahmen wie HTTPS/CORS/Auth
- CI/CD Pipelines
Anforderung:Grundkenntnisse in der Programmierung von Python
Dieser Kurs ist ideal für Entwickler/innen, die saubere, wartbare und performante Schnittstellen mit Python entwickeln möchten und dabei die beiden mächtigen Webframeworks FastAPI und Flask einsetzen wollen.