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

Tags

Diese Seite weiterempfehlen