Kurs
Digicomp Code PYTAPI
Python Scalable APIs – Mit FastAPI und Flask («PYTAPI»)
Kurs-Facts
- Gewinnen eines Überblicks über Flask vs. FastAPI und deren Vergleich
- Verstehen der Architektur moderner, skalierbarer APIs
- Asynchrones Verarbeiten und Performance-Tuning
- Praxisnahes Entwickeln von REST-APIs mit beiden Frameworks
- Validieren, Serialisieren und Dokumentieren mit Pydantic und Swagger
- Fokussieren auf Testbarkeit und Erweiterbarkeit
- Verstehen von Benchmarking und Skalierungsszenarien
- Kennen von Best Practices für produktionsreife API-Projekte
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.
- Historie und Zielsetzungen beider Frameworks
- Synchron vs. asynchrones Programmiermodell
- Unterschiede in Routing, Middleware, Dependency Injection
- Community, Erweiterbarkeit und Ecosystem
- Wann eignet sich welches Framework?
- 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
- 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
- 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
- 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
- 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
- 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
- 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)
Dieser Kurs schafft durch einen optimalen Mix aus kurzen Theorieblöcken, angeleiteten Übungen, Praxisbeispielen sowie Hands-on Szenarien ein fundiertes Verständnis für die beiden Webframeworks.
Dieser Kurs ist ideal für Entwickler/innen, die saubere, wartbare und performante Schnittstellen mit Python entwickeln wollen und dabei die beiden mächtigen Webframeworks FastAPI und Flask einsetzen möchten.
Wir empfehlen den Kurs «Einführung in die Programmierung mit Python» zur Vorbereitung: