REST APIs mit Python und FastAPI
Moderne REST APIs mit Python entwickeln
01 Intro
REST APIs bilden die Schnittstelle zwischen Anwendungen, Services und
externen Systemen. FastAPI bietet dafür einen modernen Python-Ansatz mit
Type Hints, automatischer Validierung und integrierter API-Dokumentation.
Der Kurs zeigt den vollständigen Weg von einer einfachen HTTP-Schnittstelle
bis zu einer strukturierten und getesteten API. Neben FastAPI selbst stehen
API-Design, Datenmodelle, Fehlerbehandlung, Persistenz, Sicherheit und der
Betrieb einer API im Mittelpunkt.
Kurs-ID
PY-006
Dauer
3 Tage
Format
Präsenz · Live Online · Inhouse
Vorkenntnisse
Sichere Python-Grundkenntnisse
02 Trainingsprogramm
Inhalte
HTTP und REST
- HTTP als Grundlage von Web APIs
- Requests und Responses
- HTTP-Methoden
- Status Codes
- Header
- JSON als Austauschformat
Einstieg in FastAPI
- FastAPI-Projekt einrichten
- ASGI und Uvicorn
- erste Endpoints
- Path Operations
- Path- und Query-Parameter
- Swagger UI und ReDoc
Datenmodelle und Validierung
- Pydantic-Modelle
- Type Hints als API-Vertrag
- Request Bodies
- Pflichtfelder und optionale Felder
- Validierungsregeln
- unterschiedliche Request- und Response-Modelle
REST-Schnittstellen entwerfen
- Ressourcen modellieren
- CRUD-Operationen
- sinnvolle URLs
- HTTP-Methoden korrekt einsetzen
- Status Codes auswählen
- konsistente API-Konventionen
Fehlerbehandlung
- HTTP Exceptions
- Fehlerantworten gestalten
- Validierungsfehler
- eigene Exception Handler
- einheitliche Fehlerstrukturen
- Logging von Fehlern
Struktur größerer FastAPI-Anwendungen
- Router
- Module und Packages
- APIRouter
- Trennung von API und Fachlogik
- Service-Schicht
- wiederverwendbare Abhängigkeiten
Datenbankanbindung
- Persistenz in Web APIs
- SQL-Datenbanken anbinden
- SQLAlchemy im Überblick
- Sessions und Transaktionen
- CRUD mit persistenten Daten
- Fehlerfälle bei Datenbankzugriffen
Asynchrone Verarbeitung
- synchron und asynchron in Python
- async und await
- asynchrone Endpoints
- blockierende Operationen erkennen
- I/O-bound und CPU-bound Aufgaben
- typische Fehler bei asynchronem Code
Authentifizierung und Autorisierung
- Authentifizierung und Autorisierung unterscheiden
- API Keys
- Bearer Tokens
- OAuth2-Grundlagen
- JWT im Überblick
- Passwörter sicher behandeln
APIs testen
- Endpoints automatisiert testen
- pytest und FastAPI
- Test Client
- Request- und Response-Daten prüfen
- Status Codes testen
- Datenbankzugriffe in Tests kontrollieren
API-Dokumentation
- OpenAPI
- automatisch erzeugte Dokumentation
- Metadaten für Endpoints
- Response Models
- Beispiele
- API-Verträge nachvollziehbar halten
Betrieb und Deployment
- Entwicklungs- und Produktionsbetrieb unterscheiden
- ASGI-Server
- Konfiguration über Umgebungsvariablen
- Logging
- CORS
- grundlegende Betriebsaspekte
03 Durchführung
Rahmen und Organisation
Dauer
3 Tage
Durchführung
Präsenz oder Live Online, vorzugsweise als Inhouse-Schulung
Schwerpunkt
Inhouse-Schulungen für Unternehmen und Teams
Sprache
Deutsch, englische Fachbegriffe und Dokumentation
Unterlagen
Kursunterlagen, Beispiele und Übungsaufgaben
Technik
Eigener Rechner mit aktueller Python-Version und Entwicklungsumgebung
Inhouse-Schulungen
Die Schwerpunkte können an vorhandene Kenntnisse, eingesetzte
Technologien und konkrete Anforderungen des Teams angepasst werden.
04 Zielgruppe
Für wen ist der Kurs gedacht?
Der Kurs richtet sich an Python-Entwicklerinnen und -Entwickler, die REST APIs und Backend-Services mit FastAPI entwickeln möchten.
Er eignet sich sowohl für Entwickler, die erstmals eine Web API implementieren, als auch für Teilnehmer mit Erfahrungen aus anderen Web- oder API-Frameworks, die FastAPI und dessen Python-spezifischen Ansatz kennenlernen möchten.
Die Teilnehmer sollten mit folgenden Themen sicher umgehen können:
- grundlegende Python-Syntax
- Funktionen
- Module und Packages
- Klassen und Objekte
- Exceptions
- Type Hints in Grundzügen
HTTP und REST
Grundkenntnisse von HTTP und REST sind hilfreich, aber nicht erforderlich.
05 Lernziele
Was Sie nach dem Kurs können
Nach dem Kurs können die Teilnehmer:
- REST-Schnittstellen fachlich und technisch strukturieren
- APIs mit FastAPI implementieren
- Requests und Responses mit Pydantic modellieren und validieren
- geeignete HTTP-Methoden und Status Codes einsetzen
- größere FastAPI-Anwendungen mit Routern und Dependencies strukturieren
- Datenbanken an eine API anbinden
- synchrone und asynchrone Verarbeitung sinnvoll unterscheiden
- grundlegende Authentifizierungs- und Autorisierungsmechanismen umsetzen
- APIs mit pytest automatisiert testen
- OpenAPI-Dokumentation gezielt gestalten
- typische Fehler in API-Design und Implementierung erkennen
- eine FastAPI-Anwendung für den Betrieb vorbereiten
06 FAQ
Häufige Fragen
Muss ich FastAPI bereits kennen?
Nein. Der Kurs beginnt mit den Grundlagen und entwickelt daraus schrittweise eine strukturierte API.
Muss ich REST und HTTP bereits kennen?
Nein. Die für die Entwicklung benötigten HTTP- und REST-Grundlagen werden zu Beginn behandelt.
Wird eine Datenbank verwendet?
Ja. Die Anbindung einer relationalen Datenbank wird praktisch behandelt. Der Schwerpunkt liegt dabei auf der Integration in die API und nicht auf einer vollständigen Einführung in SQL oder Datenbankentwicklung.
Wird auch async/await behandelt?
Ja. Gerade bei FastAPI ist wichtig zu verstehen, wann asynchrone Verarbeitung einen Vorteil bietet und wann sie unnötig oder sogar problematisch ist.
Wird die API automatisiert getestet?
Ja. Automatisierte API-Tests gehören zum Kurs. pytest wird dabei eingesetzt, ohne die Inhalte von PY-004 „Python Testing mit pytest“ vollständig zu wiederholen.
Wird Docker behandelt?
Die Containerisierung und der Betrieb einer FastAPI-Anwendung werden im Überblick behandelt. Docker selbst ist kein Schwerpunkt des Kurses.
Kann der Kurs an eine vorhandene API oder Systemarchitektur angepasst werden?
Ja. Bei Inhouse-Schulungen können Architektur, Authentifizierung, Datenbanktechnologie und Beispiele an die vorhandene technische Umgebung angepasst werden.