REST-APIs erstellen mit Django und dem Django Restframework
Classroom Schulung | Deutsch | Anspruch
Schulungsdauer: 5 Tage
Ziele
Der Austausch von Daten über Web-Apis ist heute aus dem Web nicht mehr wegzudenken. Applikationen konsumieren über APIs Daten, um sie weiter zu verarbeiten oder auszugeben. Programme senden über APIs Daten an entfernte Rechner, um Daten zu speichern. Das Python Webframework Django in Zusammenspiel mit der Erweiterung Django-Restframework (DRF) ermöglicht eine unkomplizierte Erstellung von leistungsfähigen Web-Apis und Schnittstellen.
Zunehmend wird Django + DRF auch für interne Prozesse und Tools in Firmen genutzt, um Tasks zu verwalten, Background Jobs zu starten oder Verwaltungsaufgaben für die Abteilungen zu implementieren. Django ist auch in der Lage, öffentliche Web-APIs mit vielen tausend Anfragen zu gewährleisten. Ausgereifte Authentifizierungs- und Rechteeinstellungen, Caching, Filtering und Sortieren sind nur Beispiele des kaum überschaubaren Funktionsumfangs von Django. Weiteres Thema im Kurs ist das Anfragen eines trainierten ML-Models über einen API-Endpunkt.
Im Kurs wird eine Dokumentation der API mit dem Software-Dokumentationswerkzeug Sphinx erstellt sowie auf Basis der OPEN-API-Spezifikation eine interaktive Dokumenation mit Swagger UI bzw. Coreapi.
Zielgruppe
- Entwickler
- Programmierer
- API-Interessierte
- Data-Scientists
Voraussetzungen
Python-Kenntnisse, Umgang mit Kommandozeile (Linux)
Agenda
Django Grundlagen
- Was ist Django?
- Datenbanken
- die Model-API, Querysets
- Model-View-Controller
- Installation und Anlegen des Projects
- Erstellen der User-App
- Models erstellen, Datenbank Migrationen
- Erstellen der Jobs-App
- Admin-Oberfläche anpassen
- Test-Daten laden
- Settings für lokale und produktive Umgebung (django-environ)
- Test-Server starten
Was ist eine REST-API?
- Grundlagen, Client-Server-Model
- REQUEST und RESPONSE Headers
- das HTTP-Protokoll, Statuscodes, Methoden
- eine Einführung in REST
- Datenformate (JSON, XML, YAML)
- Serialisierung von ein- und ausgehenden Daten
- REST vs RPC (gRPC) vs GraphQL vs SOAP
- CRUD (Create, Retrieve, Update, Delete)
- URL-Design
Django Restframework Einführung
- Django Restframework installieren
- Serializer, ModelSerializer
- API-Views, generische API-Views, API-Viewsets, api-view Decorator
- Urls und Routing
Einrichten der User-Api
- User auflisten
- User registrieren
- User Token Authentifizierung
Einrichten der Job-API
- Jobs anlegen
- Jobs löschen und editieren
- Jobs auflisten
- Tags einrichten
Django Restframework: erweiterte Techniken
- Pagination
- Filtering
- Caching
- Session-Authentication, Token-Authentication
- JWT-Token Authentifizierung
- Permissions
- Validatoren
- Logging
- Machine-Learning-Model einbinden
DRF Performance und Sicherheit
- Drosseln von Requests (Throtteling)
- Caching
- Last-Tests mit Locust
- Profiling mit SILK und Flower
- IP-Whitelisting
API-Versioning
- URL-path Versioning
- Accept-Header Versioning
Dokumentation
- Core-API, Docutils
- OpenApi, Swagger UI
- Erstellen einer HTML-Doku in Sphinx und Restructred Text (Einführung)
Client
- API-Daten konsumieren
- mit Python Pandas einlesen und visualisieren
- auf Web-Oberfläche ausgeben
- Curl
- httpie
- Postman
- Ajax-Anfrage, JWT
- CORS-Header
Ziele
Der Austausch von Daten über Web-Apis ist heute aus dem Web nicht mehr wegzudenken. Applikationen konsumieren über APIs Daten, um sie weiter zu verarbeiten oder auszugeben. Programme senden über APIs Daten an entfernte Rechner, um Daten zu speichern. Das Python Webframework Django in Zusammenspiel mit der Erweiterung Django-Restframework (DRF) ermöglicht eine unkomplizierte Erstellung von leistungsfähigen Web-Apis und Schnittstellen.
Zunehmend wird Django + DRF auch für interne Prozesse und Tools in Firmen genutzt, um Tasks zu verwalten, Background Jobs zu starten oder Verwaltungsaufgaben für die Abteilungen zu implementieren. Django ist auch in der Lage, öffentliche Web-APIs mit vielen tausend Anfragen zu gewährleisten. Ausgereifte Authentifizierungs- und Rechteeinstellungen, Caching, Filtering und Sortieren sind nur Beispiele des kaum überschaubaren Funktionsumfangs von Django. Weiteres Thema im Kurs ist das Anfragen eines trainierten ML-Models über einen API-Endpunkt.
Im Kurs wird eine Dokumentation der API mit dem Software-Dokumentationswerkzeug Sphinx erstellt sowie auf Basis der OPEN-API-Spezifikation eine interaktive Dokumenation mit Swagger UI bzw. Coreapi.
Zielgruppe
- Entwickler
- Programmierer
- API-Interessierte
- Data-Scientists
Voraussetzungen
Python-Kenntnisse, Umgang mit Kommandozeile (Linux)
Agenda
Django Grundlagen
- Was ist Django?
- Datenbanken
- die Model-API, Querysets
- Model-View-Controller
- Installation und Anlegen des Projects
- Erstellen der User-App
- Models erstellen, Datenbank Migrationen
- Erstellen der Jobs-App
- Admin-Oberfläche anpassen
- Test-Daten laden
- Settings für lokale und produktive Umgebung (django-environ)
- Test-Server starten
Was ist eine REST-API?
- Grundlagen, Client-Server-Model
- REQUEST und RESPONSE Headers
- das HTTP-Protokoll, Statuscodes, Methoden
- eine Einführung in REST
- Datenformate (JSON, XML, YAML)
- Serialisierung von ein- und ausgehenden Daten
- REST vs RPC (gRPC) vs GraphQL vs SOAP
- CRUD (Create, Retrieve, Update, Delete)
- URL-Design
Django Restframework Einführung
- Django Restframework installieren
- Serializer, ModelSerializer
- API-Views, generische API-Views, API-Viewsets, api-view Decorator
- Urls und Routing
Einrichten der User-Api
- User auflisten
- User registrieren
- User Token Authentifizierung
Einrichten der Job-API
- Jobs anlegen
- Jobs löschen und editieren
- Jobs auflisten
- Tags einrichten
Django Restframework: erweiterte Techniken
- Pagination
- Filtering
- Caching
- Session-Authentication, Token-Authentication
- JWT-Token Authentifizierung
- Permissions
- Validatoren
- Logging
- Machine-Learning-Model einbinden
DRF Performance und Sicherheit
- Drosseln von Requests (Throtteling)
- Caching
- Last-Tests mit Locust
- Profiling mit SILK und Flower
- IP-Whitelisting
API-Versioning
- URL-path Versioning
- Accept-Header Versioning
Dokumentation
- Core-API, Docutils
- OpenApi, Swagger UI
- Erstellen einer HTML-Doku in Sphinx und Restructred Text (Einführung)
Client
- API-Daten konsumieren
- mit Python Pandas einlesen und visualisieren
- auf Web-Oberfläche ausgeben
- Curl
- httpie
- Postman
- Ajax-Anfrage, JWT
- CORS-Header