NAV
Shell

Einführung

Willkommen bei der Schulungstool API.

Sie können unsere REST-API verwenden, um Informationen über Ihre Kurse, Kursteilnahmen, Benutzer und Gruppen in unserer Datenbank abzurufen.

Base-URL

Base-URL: https://api.schulungstool.de

Authentifizierung

Zur Authentifizierung können Sie den folgenden Code verwenden:

curl "https://api.schulungstool.de/.../" \
  -H "Authorization: Token <API-Schlüssel>"

Stellen Sie sicher, dass Sie <API-Schlüssel> durch Ihren API-Schlüssel ersetzen.

Schulungstool nutzt API-Schlüssel, um den Zugriff auf die API zu ermöglichen. Einen API-Schlüssel können Sie in Ihrem Administrationsbereich unter Einstellungen > Erweiterte Einstellungen > Entwickleroptionen generieren.

Schulungstool erwartet, dass der API-Schlüssel in allen API-Anfragen an den Server im HTTP-Header enthalten ist. Die Zeile im HTTP-Header sollte wie folgt aussehen:

Authorization: Token <API-Schlüssel>

Sortierung

Die Schulungstool API bietet die Möglichkeit, die Sortierreihenfolge der zurückgegebenen Ergebnisse bei der Auflistung einer Ressource (z. B. Alle Kurse auflisten) zu beeinflussen.

Dazu können Sie bei einer Anfrage mit dem Query Parameter ordering ein Feld oder mehrere Felder festlegen, nach welchen die Ergebnisse sortiert werden.

Die Ergebnisse können sowohl aufsteigend sortiert werden (ordering=Feldname) als auch absteigend (ordering=-Feldname), indem dem Feldnamen ein - vorangestellt wird.

Beispiele:

Paginierung

{
  "count": integer,
  "next": "string <url>",
  "previous": "string <url>",
  "results": [
    ...
  ]
}

Alle API-Endpunkte, welche die Auflistung einer Ressource darstellen wie z. B. Alle Benutzer auflisten, geben als Antwort paginierte Ergebnisse in folgender Struktur zurück:

Schlüssel Wert
count integer
Gesamtzahl der gefundenen Ergebnisse
next string <url> oder null
Wenn es ausgehend von der aktuellen Seite eine nächste Seite in der paginierten Ergebnisliste gibt, steht hier die URL, mit welcher Sie die nächste Seite der paginierten Ergebnisse abrufen können.
previous string <url> oder null
Wenn es ausgehend von der aktuellen Seite eine vorherige Seite in der paginierten Ergebnisliste gibt, steht hier die URL, mit welcher Sie die vorherige Seite der paginierten Ergebnisse abrufen können.
results array <Objekt>
Wenn es in den paginierten Ergebnissen mehr als eine Seite gibt, finden Sie hier eine Teilmenge der gefundenen Objekten als Liste, wobei die Teilmenge abhängig von der aktuellen Seite ist. Wenn es in den paginierten Ergebnissen nur eine Seite gibt, finden Sie hier eine Liste aller gefundenen Objekte.

Eine Seite enthält maximal 25 Ergebnisse.

Mit dem Query Parameter page können Sie festlegen, welche Seite der paginierten Ergebnisse zurückgegeben werden soll. Standardmäßig wird immer die erste Seite der paginierten Ergebnisse (page=1) zurückgegeben. Wenn Sie z. B. die dritte Seite der paginierten Ergebnisse abrufen möchten, müssen Sie page=3 als Query Parameter in der Anfrage mitsenden.

Ressourcen erweitern

In einigen Ressourcen wie z. B. dem Kurs-Objekt oder dem Kursteilnahme-Objekt gibt es bestimmte Felder, welche zu einem Objekt erweitert werden können, ohne dass dafür eine weitere Anfrage an die API erforderlich ist.

Um bestimmte Felder einer Ressource zu erweitern, müssen Sie bei einer Anfrage den Query Parameter expand mit den Feldnamen, welche zu erweitern sind, mitsenden.

Beispiele:

Durchsatzbegrenzung

HTTP-Antwort mit Statuscode 429:

{
  "error": {
    "type": "Throttled",
    "message": "Request was throttled. Expected available in 7 seconds."
  }
}

Schulungstool setzt bei seiner API Durchsatzbegrenzung ein, um allen Benutzern eine konsistente API-Leistung zu gewährleisten. Standardmäßig kann jedes Schulungstool-Konto bis zu 100 API-Anfragen pro Minute ausführen.

Wenn ein Limit erreicht wurde, erhalten Sie eine HTTP-Antwort mit dem Statuscode 429. Die Antwort enthält im HTTP-Header das Feld Retry-After mit der Anzahl der zu wartenden Sekunden, nach denen bei einer erneuten Anfrage eine normale Antwort erwartet werden kann.

Fehler

Struktur bei allen Fehlertypen (außer "ValidationError"):

{
  "error": {
    "type": "string",
    "message": "string"
  }
}

Struktur bei Fehlertyp "ValidationError":

{
  "error": {
    "type": "string",
    "message": "string",
    "field_errors": {
      "string": [
        "string"
      ]
    },
    "non_field_errors": [
      "string"
    ]
  }
}

Folgende Fehlertypen gibt es:

Typ Statuscode Beschreibung
ValidationError 400 Ein oder mehrere Felder fehlen oder haben ungültige Werte. Siehe field_errors und non_field_errors für mehr Details.
ParseError 400 Anfrage enthält fehlerhafte Daten.
AuthenticationFailed 401 Authentifizierung ist fehlgeschlagen:
Ungültiger Authentifizierung-Header oder ungültiger API-Schlüssel
NotAuthenticated 401 Authentifizierung ist fehlgeschlagen:
Der API-Schlüssel wurde nicht übermittelt.
PermissionDenied 403 Keine Berechtigung, diese Aktion durchzuführen.
NotFound 404 Ressource nicht gefunden.
MethodNotAllowed 405 HTTP-Methode ist nicht erlaubt.
NotAcceptable 406 Der Accept-Header der Anfrage konnte nicht erfüllt werden.
UnsupportedMediaType 415 Nicht unterstützter Medientyp in der Anfrage.
Throttled 429 Ein Limit der Durchsatzbegrenzung wurde erreicht.
InternalServerError 500 Ein interner Serverfehler ist aufgetreten.

Kurse

Endpunkte

Das Kurs-Objekt

{
  "id": "string <uuid>",
  "category": "string <uuid>",
  "name": "string",
  "description": "string",
  "topics": [
    "string"
  ],
  "thumbnail": {
    "string <width>": {
      "url": "string <url>",
      "width": integer,
      "height": integer
    }
  },
  "instructor": "string <uuid>",
  "languages": {
    "string": boolean
  },
  "language_code": "string",
  "default_language_code": "string",
  "is_archived": boolean,
  "created_at": "string <date-time>",
  "updated_at": "string <date-time>",
  "dashboard_url": "string <url>"
}
Attribut Beschreibung
id string <uuid>
ID des Kurses
category string <uuid> oder null
ID der Kurskategorie. Dieses Feld ist erweiterbar.
name string
Name des Kurses (übersetzt in der Sprache language_code des Kursobjekts)
description string
Beschreibung des Kurses (übersetzt in der Sprache language_code des Kursobjekts)
topics array <string>
Themen des Kurses (übersetzt in der Sprache language_code des Kursobjekts)
thumbnail object oder null
Vorschaubild des Kurses in verschiedenen Auflösungen
Schlüssel: Breite des Vorschaubildes
Wert: Object mit den Schlüsseln url (URL des Vorschaubildes), width (Breite des Vorschaubildes in Pixeln) und height (Höhe des Vorschaubildes in Pixeln).
instructor string <uuid>
ID der Kursleitung. Dieses Feld ist erweiterbar.
languages object
Übersetzungen des Kurses
Schlüssel: Sprachcode nach ISO 639-1, z. B. "de"
Wert: true (Übersetzung ist aktiviert) oder false (Übersetzung ist deaktiviert)
language_code string
Aktuelle Übersetzung des Kursobjekts (Sprachcode nach ISO 639-1, z. B. "de")
default_language_code string
Standardsprache des Kurses (Sprachcode nach ISO 639-1, z. B. "de")
is_archived boolean
true: Kurs ist archiviert
false: Kurs ist nicht archiviert
created_at string <date-time>
Zeitpunkt der Erstellung des Kurses
updated_at string <date-time>
Zeitpunkt der letzten Aktualisierung des Kurses
dashboard_url string <url>
URL zur Detailansicht des Kurses im Administrationsbereich Ihres Schulungstool-Kontos

Alle Kurse auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/courses/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

[
  "count": 3,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "06285ae7-38a0-484a-b779-b11490c706c0",
      "category": "2d49d6d5-e286-4f06-9b83-b2fdc69475b1",
      "name": "Allgemeiner Kurs 2024",
      "description": "Das ist der allgemeine Kurs im Jahr 2024.",
      "topics": [
        "Thema 1",
        "Thema 2",
        "Thema 3"
      ],
      "thumbnail": {
        "160": {
          "url": "https://schulungscdn.de/schulungstool/cache/5c/2f/5c2f699167cfaaed7f7bbdeb2094c62a.jpg",
          "width": 160,
          "height": 90
        },
        "320": {
          "url": "https://schulungscdn.de/schulungstool/cache/e6/f3/e6f31e65df15fe43d8a92663cccfeb3a.jpg",
          "width": 320,
          "height": 180
        },
        "640": {
          "url": "https://schulungscdn.de/schulungstool/cache/31/98/3198ec2a13fffa4abf3f6c48e2d0c606.jpg",
          "width": 640,
          "height": 360
        },
        "1280": {
          "url": "https://schulungscdn.de/schulungstool/cache/4c/18/4c185248455b1ff8d31626116a2e39e1.jpg",
          "width": 1280,
          "height": 720
        }
      },
      "instructor": "af782ace-30a2-4628-837f-fcd807603631",
      "languages": {
        "de": true,
        "en": true,
        "fr": false
      },
      "language_code": "de",
      "default_language_code": "de",
      "is_archived": false,
      "created_at": "2024-01-11T08:25:16.836036Z",
      "updated_at": "2024-04-14T14:44:42.083032Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/courses/06285ae7-38a0-484a-b779-b11490c706c0/"
    },
    {
      "id": "fb86f4d4-bee3-4c70-9a25-8e9dd7fd9aab",
      "category": "071b2638-3ab5-409f-aa59-60c35c1158b0",
      "name": "Brandschutz Kurs 2024",
      "description": "Das ist der Kurs zum Thema Brandschutz.",
      "topics": [],
      "thumbnail": {
        "160": {
          "url": "https://schulungscdn.de/schulungstool/cache/5c/2f/5c2f699167cfaaed7f7bbdeb2094c62a.jpg",
          "width": 160,
          "height": 90
        },
        "320": {
          "url": "https://schulungscdn.de/schulungstool/cache/e6/f3/e6f31e65df15fe43d8a92663cccfeb3a.jpg",
          "width": 320,
          "height": 180
        },
        "640": {
          "url": "https://schulungscdn.de/schulungstool/cache/31/98/3198ec2a13fffa4abf3f6c48e2d0c606.jpg",
          "width": 640,
          "height": 360
        },
        "1280": {
          "url": "https://schulungscdn.de/schulungstool/cache/4c/18/4c185248455b1ff8d31626116a2e39e1.jpg",
          "width": 1280,
          "height": 720
        }
      },
      "instructor": "1e5d00d7-1f74-4531-9d9e-37ff9f95522b",
      "languages": {
        "de": true
      },
      "language_code": "de",
      "default_language_code": "de",
      "is_archived": false,
      "created_at": "2024-01-11T08:35:01.296595Z",
      "updated_at": "2024-03-21T08:18:58.649545Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/courses/fb86f4d4-bee3-4c70-9a25-8e9dd7fd9aab/"
    }
  ]
]

Dieser API-Endpunkt gibt eine Liste aller Kurse zurück.

HTTP-Anfrage

GET/v1/courses/

HTTP-Anfrage: Query-Parameter

Parameter Beschreibung
id string <uuid>
Ein Filter für das Feld id eines Kursobjekts.
category string <uuid>
Ein Filter für das Feld category eines Kursobjekts.
name string
Ein Filter für das Feld name eines Kursobjekts.
description string
Ein Filter für das Feld description eines Kursobjekts.
instructor string <uuid>
Ein Filter für das Feld instructor eines Kursobjekts.
is_archived boolean
Ein Filter für das Feld is_archived eines Kursobjekts.
search string
Ein Suchbegriff, nach welchem in den Feldern id, category (title des zugehörigen Kurskategorieobjekts), name und description eines Kursobjekts gesucht wird.
ordering string
Ein Feld oder mehrere durch Komma getrennte Felder, nach welchen die Liste der Kursobjekte sortiert wird. Zur Auswahl stehen die Felder name, created_at und updated_at eines Kursobjekts.
page integer
Eine Seitenzahl innerhalb der paginierten Ergebnisse.
expand string
Ein Feld oder mehrere durch Komma getrennte Felder, welche zu einem Objekt erweitert werden. Zur Auswahl stehen die Felder category und instructor eines Kursobjekts.
lang string
Eine Sprache, in welche die Kursobjekte übersetzt werden.
Wenn die Sprache in einem Kurs nicht verfügbar ist, wird das Kursobjekt in die Standardsprache des Kurses übersetzt.
Standardwert: "de"

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Kurse
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Kurs-Objekt>
Liste von Kurs-Objekten

Einen Kurs erstellen

Beispielcode:

curl -X POST "https://api.schulungstool.de/v1/courses/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "06285ae7-38a0-484a-b779-b11490c706c0",
  "category": "2d49d6d5-e286-4f06-9b83-b2fdc69475b1",
  "name": "Allgemeiner Kurs 2024",
  "description": "Das ist der allgemeine Kurs im Jahr 2024.",
  "topics": [
    "Thema 1",
    "Thema 2",
    "Thema 3"
  ],
  "thumbnail": null,
  "instructor": "af782ace-30a2-4628-837f-fcd807603631",
  "languages": {
    "de": true,
  },
  "language_code": "de",
  "default_language_code": "de",
  "is_archived": false,
  "created_at": "2024-01-11T08:25:16.836036Z",
  "updated_at": "2024-01-11T08:25:16.836054Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/courses/06285ae7-38a0-484a-b779-b11490c706c0/"
}

Dieser API-Endpunkt erstellt einen Kurs.

HTTP-Anfrage

POST/v1/courses/

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
name stringerforderlich
Name des Kurses
instructor string <uuid>erforderlich
ID der Kursleitung
default_language_code stringerforderlich
Standardsprache des Kurses (Sprachcode nach ISO 639-1, z. B. "de")
category string <uuid>
ID der Kurskategorie
Standardwert: null
description string
Beschreibung des Kurses
Standardwert: ""
topics array <string>
Themen des Kurses
Standardwert: []
is_archived boolean
true: Kurs ist archiviert
false: Kurs ist nicht archiviert
Standardwert: false

HTTP-Antwort (Content-Type: application/json)

Statuscode 201:

Ein Kurs-Objekt

Einen Kurs abrufen

Beispielcode:

curl "https://api.schulungstool.de/v1/courses/{course_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "id": "06285ae7-38a0-484a-b779-b11490c706c0",
  "category": "2d49d6d5-e286-4f06-9b83-b2fdc69475b1",
  "name": "Allgemeiner Kurs 2024",
  "description": "Das ist der allgemeine Kurs im Jahr 2024.",
  "topics": [
    "Thema 1",
    "Thema 2",
    "Thema 3"
  ],
  "thumbnail": {
    "160": {
      "url": "https://schulungscdn.de/schulungstool/cache/5c/2f/5c2f699167cfaaed7f7bbdeb2094c62a.jpg",
      "width": 160,
      "height": 90
    },
    "320": {
      "url": "https://schulungscdn.de/schulungstool/cache/e6/f3/e6f31e65df15fe43d8a92663cccfeb3a.jpg",
      "width": 320,
      "height": 180
    },
    "640": {
      "url": "https://schulungscdn.de/schulungstool/cache/31/98/3198ec2a13fffa4abf3f6c48e2d0c606.jpg",
      "width": 640,
      "height": 360
    },
    "1280": {
      "url": "https://schulungscdn.de/schulungstool/cache/4c/18/4c185248455b1ff8d31626116a2e39e1.jpg",
      "width": 1280,
      "height": 720
    }
  },
  "instructor": "af782ace-30a2-4628-837f-fcd807603631",
  "languages": {
    "de": true,
    "en": true,
    "fr": false
  },
  "language_code": "de",
  "default_language_code": "de",
  "is_archived": false,
  "created_at": "2024-01-11T08:25:16.836036Z",
  "updated_at": "2024-04-14T14:44:42.083032Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/courses/06285ae7-38a0-484a-b779-b11490c706c0/"
}

Dieser API-Endpunkt gibt einen Kurs zurück.

HTTP-Anfrage

GET/v1/courses/{course_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
course_id string <uuid>
Die ID des abzurufenden Kurses.

HTTP-Anfrage: Query-Parameter

Parameter Beschreibung
expand string
Ein Feld oder mehrere durch Komma getrennte Felder, welche zu einem Objekt erweitert werden. Zur Auswahl stehen die Felder category und instructor des Kursobjekts.
lang string
Eine Sprache, in welche das Kursobjekt übersetzt wird.
Wenn die Sprache im Kurs nicht verfügbar ist, wird das Kursobjekt in die Standardsprache des Kurses übersetzt.
Standardwert: "de"

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Kurs-Objekt

Einen Kurs bearbeiten

Beispielcode:

curl -X PATCH "https://api.schulungstool.de/v1/courses/{course_id}/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "06285ae7-38a0-484a-b779-b11490c706c0",
  "category": "2d49d6d5-e286-4f06-9b83-b2fdc69475b1",
  "name": "Allgemeiner Kurs 2024",
  "description": "Das ist der allgemeine Kurs im Jahr 2024.",
  "topics": [
    "Thema 1",
    "Thema 2",
    "Thema 3"
  ],
  "thumbnail": {
    "160": {
      "url": "https://schulungscdn.de/schulungstool/cache/5c/2f/5c2f699167cfaaed7f7bbdeb2094c62a.jpg",
      "width": 160,
      "height": 90
    },
    "320": {
      "url": "https://schulungscdn.de/schulungstool/cache/e6/f3/e6f31e65df15fe43d8a92663cccfeb3a.jpg",
      "width": 320,
      "height": 180
    },
    "640": {
      "url": "https://schulungscdn.de/schulungstool/cache/31/98/3198ec2a13fffa4abf3f6c48e2d0c606.jpg",
      "width": 640,
      "height": 360
    },
    "1280": {
      "url": "https://schulungscdn.de/schulungstool/cache/4c/18/4c185248455b1ff8d31626116a2e39e1.jpg",
      "width": 1280,
      "height": 720
    }
  },
  "instructor": "af782ace-30a2-4628-837f-fcd807603631",
  "languages": {
    "de": true,
    "en": true,
    "fr": false
  },
  "language_code": "de",
  "default_language_code": "de",
  "is_archived": false,
  "created_at": "2024-01-11T08:25:16.836036Z",
  "updated_at": "2024-04-14T14:44:42.083032Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/courses/06285ae7-38a0-484a-b779-b11490c706c0/"
}

Dieser API-Endpunkt bearbeitet einen Kurs.

HTTP-Anfrage

PATCH/v1/courses/{course_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
course_id string <uuid>
Die ID des zu bearbeitenden Kurses.

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
category string <uuid>
ID der Kurskategorie
name string
Name des Kurses
description string
Beschreibung des Kurses
topics array <string>
Themen des Kurses
instructor string <uuid>
ID der Kursleitung
default_language_code string
Standardsprache des Kurses (Sprachcode nach ISO 639-1, z. B. "de")
is_archived boolean
true: Kurs ist archiviert
false: Kurs ist nicht archiviert

HTTP-Anfrage: Query-Parameter

Parameter Beschreibung
lang string
Eine Sprache, die bestimmt, welche Übersetzung des Kurses bearbeitet wird. (betrifft die Felder name, description und topics)
Wenn die Sprache im Kurs nicht verfügbar ist, wird die Übersetzung der Standardsprache des Kurses bearbeitet.
Standardwert: "de"

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Kurs-Objekt

Einen Kurs löschen

Beispielcode:

curl -X DELETE "https://api.schulungstool.de/v1/courses/{course_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Dieser API-Endpunkt löscht einen Kurs.

HTTP-Anfrage

DELETE/v1/courses/{course_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
course_id string <uuid>
Die ID des zu löschenden Kurses.

HTTP-Antwort

Statuscode 204:

Der Kurs wurde erfolgreich gelöscht.

Alle Kursteilnahmen eines Kurses auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/courses/{course_id}/participations/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "count": 3,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "81b670f5-b160-4805-80fa-2cd1423bff9f",
      "user": "cd963a39-6070-4578-9d3b-23bb6a58432c",
      "course": "ce9fb46d-0ade-4678-85f7-c6dbcdde3d86",
      "due_date": "2023-06-30",
      "completed_at": null,
      "status": "pending",
      "created_at": "2024-01-11T09:17:45.017101Z",
      "updated_at": "2024-01-11T09:17:45.017120Z",
      "learn_url": "https://demo.schulungstool.de/learn/81b670f5-b160-4805-80fa-2cd1423bff9f/",
      "dashboard_url": "https://demo.schulungstool.de/admin/participations/81b670f5-b160-4805-80fa-2cd1423bff9f/"
    },
    {
      "id": "d5d4665c-fe35-4e8a-98fc-73b7829b35a3",
      "user": "1830fc24-b57a-41ba-93b1-9960f8edc927",
      "course": "ce9fb46d-0ade-4678-85f7-c6dbcdde3d86",
      "due_date": "2023-06-30",
      "completed_at": "2023-03-15T13:37:25.674769Z",
      "status": "done",
      "created_at": "2024-01-11T09:17:01.581158Z",
      "updated_at": "2023-03-15T13:37:26.255871Z",
      "learn_url": "https://demo.schulungstool.de/learn/d5d4665c-fe35-4e8a-98fc-73b7829b35a3/",
      "dashboard_url": "https://demo.schulungstool.de/admin/participations/d5d4665c-fe35-4e8a-98fc-73b7829b35a3/"
    },
    {
      "id": "f7c02638-199c-4e06-9b7c-89925e75b870",
      "user": "dc8eee3e-cbbe-4f01-ab05-79d7cb882c2c",
      "course": "ce9fb46d-0ade-4678-85f7-c6dbcdde3d86",
      "due_date": "2023-06-30",
      "completed_at": null,
      "status": "pending",
      "created_at": "2024-01-11T09:16:50.266820Z",
      "updated_at": "2024-01-11T09:16:50.266845Z",
      "learn_url": "https://demo.schulungstool.de/learn/f7c02638-199c-4e06-9b7c-89925e75b870/",
      "dashboard_url": "https://demo.schulungstool.de/admin/participations/f7c02638-199c-4e06-9b7c-89925e75b870/"
    }
  ]
}

Dieser API-Endpunkt gibt eine Liste aller Kursteilnahmen eines Kurses zurück.

HTTP-Anfrage

GET/v1/courses/{course_id}/participations/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
course_id string <uuid>
Die ID des Kurses, dessen Kursteilnahmen aufgelistet werden.

HTTP-Anfrage: Query-Parameter

siehe Query Parameter bei Alle Kursteilnahmen auflisten

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Kursteilnahmen
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Kursteilnahme-Objekt>
Liste von Kursteilnahme-Objekten

Alle Bewertungen eines Kurses auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/courses/{course_id}/ratings/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "count": 3,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "20d3b11a-cb23-4986-bdfb-424c2ebdbdb4",
      "course": "ce9fb46d-0ade-4678-85f7-c6dbcdde3d86",
      "language_code": "de",
      "rating": 3,
      "comment": ""
    },
    {
      "id": "47244de2-3edd-448b-8ab7-6d4790046c79",
      "course": "ce9fb46d-0ade-4678-85f7-c6dbcdde3d86",
      "language_code": "de",
      "rating": 5,
      "comment": "Der Kurs hat mir gut gefallen."
    },
    {
      "id": "a75596f7-b044-4c42-9990-cdb43542adb1",
      "course": "ce9fb46d-0ade-4678-85f7-c6dbcdde3d86",
      "language_code": "en",
      "rating": 5,
      "comment": "top course"
    }
  ]
}

Dieser API-Endpunkt gibt eine Liste aller Bewertungen eines Kurses zurück.

HTTP-Anfrage

GET/v1/courses/{course_id}/ratings/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
course_id string <uuid>
Die ID des Kurses, dessen Bewertungen aufgelistet werden.

HTTP-Anfrage: Query-Parameter

siehe Query Parameter bei Alle Kursbewertungen auflisten

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Kursbewertungen
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Kursbewertung-Objekt>
Liste von Kursbewertung-Objekten

Kursbewertungen

Endpunkte

Das Kursbewertung-Objekt

{
  "id": "string <uuid>",
  "course": "string <uuid>",
  "language_code": "string",
  "rating": integer,
  "comment": "string"
}
Attribut Beschreibung
id string <uuid>
ID der Kursbewertung
course string <uuid>
ID des Kurses der Kursbewertung. Dieses Feld ist erweiterbar.
language_code string
Bewertete Übersetzung des Kurses (Sprachcode nach ISO 639-1, z. B. "de")
rating integer
Bewertung des Kurses von 1 bis 5 Sternen
comment string
Kommentar zur Kursbewertung

Alle Kursbewertungen auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/course-ratings/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

[
  "count": 3,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "9d4cf044-77fe-4aac-9dfa-2ee7e2a07f94",
      "course": "5716ad84-b7ba-4a7c-b2d2-7d9c46e04695",
      "language_code": "de",
      "rating": 3,
      "comment": ""
    },
    {
      "id": "47244de2-3edd-448b-8ab7-6d4790046c79",
      "course": "ce9fb46d-0ade-4678-85f7-c6dbcdde3d86",
      "language_code": "de",
      "rating": 5,
      "comment": "Der Kurs hat mir gut gefallen."
    },
    {
      "id": "4c60786c-ca7e-4b3d-9932-24d8cb6702c9",
      "course": "1e20e274-9ac1-45e8-9c2e-841e577ea292",
      "language_code": "de",
      "rating": 1,
      "comment": ""
    }
  ]
]

Dieser API-Endpunkt gibt eine Liste aller Kursbewertungen zurück.

HTTP-Anfrage

GET/v1/course-ratings/

HTTP-Anfrage: Query-Parameter

Parameter Beschreibung
id string <uuid>
Ein Filter für das Feld id eines Kursbewertungobjekts.
course string <uuid>
Ein Filter für das Feld course eines Kursbewertungobjekts.
language_code string
Ein Filter für das Feld language_code eines Kursbewertungobjekts.
rating integer
Ein Filter für das Feld rating eines Kursbewertungobjekts.
search string
Ein Suchbegriff, nach welchem in den Feldern id, course (name des zugehörigen Kursobjekts) und comment eines Kursbewertungobjekts gesucht wird.
ordering string
Ein Feld oder mehrere durch Komma getrennte Felder, nach welchen die Liste der Kursbewertungobjekte sortiert wird. Zur Auswahl steht das Feld rating eines Kursbewertungobjekts.
page integer
Eine Seitenzahl innerhalb der paginierten Ergebnisse.

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Kursbewertungen
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Kursbewertung-Objekt>
Liste von Kursbewertung-Objekten

Eine Kursbewertung abrufen

Beispielcode:

curl "https://api.schulungstool.de/v1/course-ratings/{course_rating_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "id": "47244de2-3edd-448b-8ab7-6d4790046c79",
  "course": "ce9fb46d-0ade-4678-85f7-c6dbcdde3d86",
  "language_code": "de",
  "rating": 5,
  "comment": "Der Kurs hat mir gut gefallen."
}

Dieser API-Endpunkt gibt eine Kursbewertung zurück.

HTTP-Anfrage

GET/v1/course-ratings/{course_rating_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
course_rating_id string <uuid>
Die ID der abzurufenden Kursbewertung.

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Kursbewertung-Objekt

Kurskategorien

Endpunkte

Das Kurskategorie-Objekt

{
  "id": "string <uuid>",
  "title": "string",
  "created_at": "string <date-time>",
  "updated_at": "string <date-time>"
}
Attribut Beschreibung
id string <uuid>
ID der Kurskategorie
title string
Titel der Kurskategorie
created_at string <date-time>
Zeitpunkt der Erstellung der Kurskategorie
updated_at string <date-time>
Zeitpunkt der letzten Aktualisierung der Kurskategorie

Alle Kurskategorien auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/course-categories/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

[
  "count": 3,
  "next": null,
  "previous": null,
  "results": [
    {
        "id": "2d49d6d5-e286-4f06-9b83-b2fdc69475b1",
        "title": "Allgemein",
        "created_at": "2024-01-23T13:40:23.265058Z",
        "updated_at": "2024-01-23T13:40:23.265085Z"
    },
    {
        "id": "071b2638-3ab5-409f-aa59-60c35c1158b0",
        "title": "Brandschutz",
        "created_at": "2024-01-23T13:42:21.630533Z",
        "updated_at": "2024-01-23T13:42:21.630546Z"
    },
    {
        "id": "7efd09ae-8a91-48c4-85bd-dd9bb604af9a",
        "title": "Erste Hilfe",
        "created_at": "2024-01-23T13:41:51.433008Z",
        "updated_at": "2024-01-23T13:41:51.433029Z"
    }
  ]
]

Dieser API-Endpunkt gibt eine Liste aller Kurskategorien zurück.

HTTP-Anfrage

GET/v1/course-categories/

HTTP-Anfrage: Query-Parameter

Parameter Beschreibung
id string <uuid>
Ein Filter für das Feld id eines Kurskategorieobjekts.
title string <uuid>
Ein Filter für das Feld title eines Kurskategorieobjekts.
search string
Ein Suchbegriff, nach welchem in den Feldern id und title eines Kurskategorieobjekts gesucht wird.
ordering string
Ein Feld oder mehrere durch Komma getrennte Felder, nach welchen die Liste der Kurskategorieobjekte sortiert wird. Zur Auswahl stehen die Felder title, created_at und updated_at eines Kurskategorieobjekts.
page integer
Eine Seitenzahl innerhalb der paginierten Ergebnisse.

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Kurskategorien
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Kurskategorie-Objekt>
Liste von Kurskategorie-Objekten

Eine Kurskategorie erstellen

Beispielcode:

curl -X POST "https://api.schulungstool.de/v1/course-categories/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "2d49d6d5-e286-4f06-9b83-b2fdc69475b1",
  "title": "Allgemein",
  "created_at": "2024-01-23T13:40:23.265058Z",
  "updated_at": "2024-01-23T13:40:23.265085Z"
}

Dieser API-Endpunkt erstellt eine Kurskategorie.

HTTP-Anfrage

POST/v1/course-categories/

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
title stringerforderlich
Titel der Kurskategorie

HTTP-Antwort (Content-Type: application/json)

Statuscode 201:

Ein Kurskategorie-Objekt

Eine Kurskategorie abrufen

Beispielcode:

curl "https://api.schulungstool.de/v1/course-categories/{course_category_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "id": "2d49d6d5-e286-4f06-9b83-b2fdc69475b1",
  "title": "Allgemein",
  "created_at": "2024-01-23T13:40:23.265058Z",
  "updated_at": "2024-01-23T13:40:23.265085Z"
}

Dieser API-Endpunkt gibt eine Kurskategorie zurück.

HTTP-Anfrage

GET/v1/course-categories/{course_category_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
course_category_id string <uuid>
Die ID der abzurufenden Kurskategorie.

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Kurskategorie-Objekt

Eine Kurskategorie bearbeiten

Beispielcode:

curl -X PATCH "https://api.schulungstool.de/v1/course-categories/{course_category_id}/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "2d49d6d5-e286-4f06-9b83-b2fdc69475b1",
  "title": "Allgemein",
  "created_at": "2024-01-23T13:40:23.265058Z",
  "updated_at": "2024-02-01T12:30:10.719095Z"
}

Dieser API-Endpunkt bearbeitet eine Kurskategorie.

HTTP-Anfrage

PATCH/v1/course-categories/{course_category_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
course_category_id string <uuid>
Die ID der zu bearbeitenden Kurskategorie.

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
title string
Titel der Kurskategorie

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Kurskategorie-Objekt

Eine Kurskategorie löschen

Beispielcode:

curl -X DELETE "https://api.schulungstool.de/v1/course-categories/{course_category_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Dieser API-Endpunkt löscht eine Kurskategorie.

HTTP-Anfrage

DELETE/v1/course-categories/{course_category_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
course_category_id string <uuid>
Die ID der zu löschenden Kurskategorie.

HTTP-Antwort

Statuscode 204:

Die Kurskategorie wurde erfolgreich gelöscht.

Kursteilnahmen

Endpunkte

Das Kursteilnahme-Objekt

{
  "id": "string <uuid>",
  "user": "string <uuid>",
  "course": "string <uuid>",
  "due_date": "string <date>",
  "completed_at": "string <date-time>",
  "status": "string",
  "created_at": "string <date-time>",
  "updated_at": "string <date-time>",
  "learn_url": "string <url>",
  "dashboard_url": "string <url>",
}
Attribut Beschreibung
id string <uuid>
ID der Kursteilnahme
user string <uuid>
ID des Benutzers der Kursteilnahme. Dieses Feld ist erweiterbar.
course string <uuid>
ID des Kurses der Kursteilnahme. Dieses Feld ist erweiterbar.
due_date string <date>
Fälligkeitsdatum der Kursteilnahme (Datumsformat nach ISO 8601: YYYY-MM-DD, z. B. "2024-12-31")
completed_at string <date-time> oder null
Erledigungsdatum der Kursteilnahme
status string
Status der Kursteilnahme
done: Kursteilnahme ist erledigt
pending: Kursteilnahme ist offen
created_at string <date-time>
Zeitpunkt der Erstellung der Kursteilnahme
updated_at string <date-time>
Zeitpunkt der letzten Aktualisierung der Kursteilnahme
learn_url string <url>
URL zur Kursteilnahme im Benutzerbereich, unter der die Kursteilnahme erledigt wird
dashboard_url string <url>
URL zur Detailansicht der Kursteilnahme im Administrationsbereich Ihres Schulungstool-Kontos

Alle Kursteilnahmen auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/participations/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

[
  "count": 3,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "2a84ea78-de46-433d-810a-f4d958d9d898",
      "user": "20d29b92-2757-454e-b373-c2fc0ab32cbf",
      "course": "4aef42ee-f4b3-42e7-bf76-b321f105f64e",
      "due_date": "2024-02-12",
      "completed_at": "2022-11-11T15:05:45.373065Z",
      "status": "done",
      "created_at": "2022-11-11T09:27:44.027099Z",
      "updated_at": "2022-11-11T15:05:45.779528Z",
      "learn_url": "https://demo.schulungstool.de/learn/2a84ea78-de46-433d-810a-f4d958d9d898/",
      "dashboard_url": "https://demo.schulungstool.de/admin/participations/2a84ea78-de46-433d-810a-f4d958d9d898/"
    },
    {
      "id": "8df2fa1e-5c5a-4d67-bcb1-39b1acf6b528",
      "user": "20d29b92-2757-454e-b373-c2fc0ab32cbf",
      "course": "52065538-6f82-4cee-a3c1-3de904018aed",
      "due_date": "2022-12-11",
      "completed_at": "2022-11-11T15:06:31.291074Z",
      "status": "done",
      "created_at": "2022-11-09T15:00:33.487721Z",
      "updated_at": "2022-11-11T15:06:31.491317Z",
      "learn_url": "https://demo.schulungstool.de/learn/8df2fa1e-5c5a-4d67-bcb1-39b1acf6b528/",
      "dashboard_url": "https://demo.schulungstool.de/admin/participations/8df2fa1e-5c5a-4d67-bcb1-39b1acf6b528/"
    },
    {
      "id": "0e7c942d-76b7-4bbf-a22e-3de5d872e1a6",
      "user": "be8b9e5e-c7eb-478b-8e8f-17d308e49a39",
      "course": "6f061188-25a5-4899-a5df-bf975533149e",
      "due_date": "2024-04-12",
      "completed_at": null,
      "status": "pending",
      "created_at": "2022-10-28T09:09:32.522467Z",
      "updated_at": "2022-10-28T09:09:32.522472Z",
      "learn_url": "https://demo.schulungstool.de/learn/0e7c942d-76b7-4bbf-a22e-3de5d872e1a6/",
      "dashboard_url": "https://demo.schulungstool.de/admin/participations/0e7c942d-76b7-4bbf-a22e-3de5d872e1a6/"
    }
  ]
]

Dieser API-Endpunkt gibt eine Liste aller Kursteilnahmen zurück.

HTTP-Anfrage

GET/v1/participations/

HTTP-Anfrage: Query-Parameter

Parameter Beschreibung
id string <uuid>
Ein Filter für das Feld id eines Kursteilnahmeobjekts.
user string <uuid>
Ein Filter für das Feld user eines Kursteilnahmeobjekts.
course string <uuid>
Ein Filter für das Feld course eines Kursteilnahmeobjekts.
due_date string <date>
Ein Filter für das Feld due_date eines Kursteilnahmeobjekts.
completed_at string <date>
Ein Filter für das Feld completed_at eines Kursteilnahmeobjekts.
status string
Ein Filter für das Feld status eines Kursteilnahmeobjekts.
search string
Ein Suchbegriff, nach welchem in den Feldern id, user (username, first_name, last_name und email des zugehörigen Benutzerobjekts) und course (name des zugehörigen Kursobjekts) eines Kursteilnahmeobjekts gesucht wird.
ordering string
Ein Feld oder mehrere durch Komma getrennte Felder, nach welchen die Liste der Kursteilnahmeobjekte sortiert wird. Zur Auswahl stehen die Felder user (Sortierung nach Nachname), course (Sortierung nach Kursname), due_date, completed_at, created_at und updated_at eines Kursteilnahmeobjekts.
page integer
Eine Seitenzahl innerhalb der paginierten Ergebnisse.
expand string
Ein Feld oder mehrere durch Komma getrennte Felder, welche zu einem Objekt erweitert werden. Zur Auswahl stehen die Felder user und course eines Kursteilnahmeobjekts.
lang string
Eine Sprache, in welche das Kursobjekt eines Kursteilnahmeobjekts übersetzt wird.
Wenn die Sprache in einem Kurs nicht verfügbar ist, wird das Kursobjekt in die Standardsprache des Kurses übersetzt.
Standardwert: "de"

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Kursteilnahmen
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Kursteilnahme-Objekt>
Liste von Kursteilnahme-Objekten

Eine Kursteilnahme erstellen

Beispielcode:

curl -X POST "https://api.schulungstool.de/v1/participations/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "2a84ea78-de46-433d-810a-f4d958d9d898",
  "user": "20d29b92-2757-454e-b373-c2fc0ab32cbf",
  "course": "4aef42ee-f4b3-42e7-bf76-b321f105f64e",
  "due_date": "2024-01-01",
  "completed_at": null,
  "status": "pending",
  "created_at": "2022-11-11T09:27:44.027099Z",
  "updated_at": "2022-11-11T09:27:44.027120Z",
  "learn_url": "https://demo.schulungstool.de/learn/2a84ea78-de46-433d-810a-f4d958d9d898/",
  "dashboard_url": "https://demo.schulungstool.de/admin/participations/2a84ea78-de46-433d-810a-f4d958d9d898/"
}

Dieser API-Endpunkt erstellt eine Kursteilnahme und benachrichtigt den Benutzer per E-Mail.

Der Benutzer wird automatisch per E-Mail über die zu erledigende Kursteilnahme informiert.

HTTP-Anfrage

POST/v1/participations/

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
user string <uuid>erforderlich
ID des Benutzers der Kursteilnahme.
course string <uuid>erforderlich
ID des Kurses der Kursteilnahme.
due_date string <date>erforderlich
Fälligkeitsdatum der Kursteilnahme (Datumsformat nach ISO 8601: YYYY-MM-DD, z. B. "2024-12-31")

HTTP-Antwort (Content-Type: application/json)

Statuscode 201:

Ein Kursteilnahme-Objekt

Eine Kursteilnahme abrufen

Beispielcode:

curl "https://api.schulungstool.de/v1/participations/{participation_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "id": "2a84ea78-de46-433d-810a-f4d958d9d898",
  "user": "20d29b92-2757-454e-b373-c2fc0ab32cbf",
  "course": "4aef42ee-f4b3-42e7-bf76-b321f105f64e",
  "due_date": "2024-02-12",
  "completed_at": "2022-11-11T15:05:45.373065Z",
  "status": "done",
  "created_at": "2022-11-11T09:27:44.027099Z",
  "updated_at": "2022-11-11T15:05:45.779528Z",
  "learn_url": "https://demo.schulungstool.de/learn/2a84ea78-de46-433d-810a-f4d958d9d898/",
  "dashboard_url": "https://demo.schulungstool.de/admin/participations/2a84ea78-de46-433d-810a-f4d958d9d898/"
}

Dieser API-Endpunkt gibt eine Kursteilnahme zurück.

HTTP-Anfrage

GET/v1/participations/{participation_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
participation_id string <uuid>
Die ID der abzurufenden Kursteilnahme.

HTTP-Anfrage: Query-Parameter

Parameter Beschreibung
expand string
Ein Feld oder mehrere durch Komma getrennte Felder, welche zu einem Objekt erweitert werden. Zur Auswahl stehen die Felder user und course des Kursteilnahmeobjekts.
lang string
Eine Sprache, in welche das Kursobjekt des Kursteilnahmeobjekts übersetzt wird.
Wenn die Sprache im Kurs nicht verfügbar ist, wird das Kursobjekt in die Standardsprache des Kurses übersetzt.
Standardwert: "de"

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Kursteilnahme-Objekt

Eine Kursteilnahme bearbeiten

Beispielcode:

curl -X PATCH "https://api.schulungstool.de/v1/participations/{participation_id}/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "96d5c8b6-5d16-48e4-9268-0383799eddee",
  "user": "20d29b92-2757-454e-b373-c2fc0ab32cbf",
  "course": "4aef42ee-f4b3-42e7-bf76-b321f105f64e",
  "due_date": "2024-12-31",
  "completed_at": null,
  "status": "pending",
  "created_at": "2024-01-11T09:27:44.027099Z",
  "updated_at": "2024-02-01T15:05:45.779528Z",
  "learn_url": "https://demo.schulungstool.de/learn/96d5c8b6-5d16-48e4-9268-0383799eddee/",
  "dashboard_url": "https://demo.schulungstool.de/admin/participations/96d5c8b6-5d16-48e4-9268-0383799eddee/"
}

Dieser API-Endpunkt bearbeitet eine Kursteilnahme.

HTTP-Anfrage

PATCH/v1/participations/{participation_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
participation_id string <uuid>
Die ID der zu bearbeitenden Kursteilnahme.

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
due_date string <date>
Fälligkeitsdatum der Kursteilnahme (Datumsformat nach ISO 8601: YYYY-MM-DD, z. B. "2024-12-31")

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Kursteilnahme-Objekt

Eine Kursteilnahme löschen

Beispielcode:

curl -X DELETE "https://api.schulungstool.de/v1/participations/{participation_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Dieser API-Endpunkt löscht eine Kursteilnahme.

HTTP-Anfrage

DELETE/v1/participations/{participation_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
participation_id string <uuid>
Die ID der zu löschenden Kursteilnahme.

HTTP-Antwort

Statuscode 204:

Die Kursteilnahme wurde erfolgreich gelöscht.

Das Teilnahmezertifikat einer Kursteilnahme abrufen

Beispielcode:

curl "https://api.schulungstool.de/v1/participations/{participation_id}/certificate/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -O -J

Dieser API-Endpunkt gibt das Teilnahmezertifikat einer Kursteilnahme zurück.

HTTP-Anfrage

GET/v1/participations/{participation_id}/certificate/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
participation_id string <uuid>
Die ID der Kursteilnahme, deren Teilnahmezertifikat abgerufen wird.

HTTP-Antwort (Content-Type: application/pdf)

Statuscode 200:

Das Teilnahmezertifikat der Kursteilnahme.

Benutzer

Endpunkte

Das Benutzer-Objekt

{
  "id": "string <uuid>",
  "username": "string",
  "first_name": "string",
  "last_name": "string",
  "email": "string <email>",
  "notification_email": "string <email>",
  "staff_number": "string",
  "description": "string",
  "birth_date": "string <date>",
  "birth_place": "string",
  "organization": "string",
  "department": "string",
  "job_title": "string",
  "street_address": "string",
  "postal_code": "string",
  "city": "string",
  "country": "string",
  "phone": "string",
  "language": "string",
  "last_active": "string <date-time>",
  "role": "string",
  "is_active": boolean,
  "created_at": "string <date-time>",
  "updated_at": "string <date-time>",
  "dashboard_url": "string <url>",
}
Attribut Beschreibung
id string <uuid>
ID des Benutzers
username string
Benutzername des Benutzers
first_name string
Vorname des Benutzers
last_name string
Nachname des Benutzers
email string <email> oder null
E-Mail-Adresse des Benutzers für Login und Benachrichtigungen
notification_email string <email>
Zusätzliche E-Mail-Adresse des Benutzers für Benachrichtigungen
staff_number string
Personalnummer des Benutzers
description string
Beschreibung des Benutzers
birth_date string <date> oder null
Geburtsdatum des Benutzers (Datumsformat nach ISO 8601: YYYY-MM-DD, z. B. "1990-01-19")
birth_place string
Geburtsort des Benutzers
organization string
Organisation des Benutzers
department string
Abteilung des Benutzers
job_title string
Position des Benutzers
street_address string
Straße und Nr. des Benutzers
postal_code string
Postleitzahl des Benutzers
city string
Ort des Benutzers
country string
Land des Benutzers
phone string
Telefonnummer des Benutzers
language string
Sprache des Benutzers (Sprachcode nach ISO 639-1, z. B. "de")
last_active string <date-time> oder null
Letzte Aktivität des Benutzers
role string
Rolle des Benutzers
user: Benutzer
manager: Manager
billing_manager: Abrechnungsmanager
admin: Administrator
is_active boolean
true: Benutzer ist aktiviert
false: Benutzer ist deaktiviert
created_at string <date-time>
Zeitpunkt der Erstellung des Benutzers
updated_at string <date-time>
Zeitpunkt der letzten Aktualisierung des Benutzers
dashboard_url string <url>
URL zur Detailansicht des Benutzers im Administrationsbereich Ihres Schulungstool-Kontos

Alle Benutzer auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/users/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

[
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "1f53398d-843f-4bc5-8e0f-9841ab294274",
      "username": "Max.Mustermann",
      "first_name": "Max",
      "last_name": "Mustermann",
      "email": "max.mustermann@example.com",
      "notification_email": "",
      "staff_number": "1",
      "description": "Beschreibung des Benutzers",
      "birth_date": "1990-02-04",
      "birth_place": "Berlin",
      "organization": "Musterfirma GmbH",
      "department": "Logistik",
      "job_title": "",
      "street_address": "",
      "postal_code": "",
      "city": "Berlin",
      "country": "DE",
      "phone": "",
      "language": "de",
      "last_active": "2024-03-02T12:53:54.191077Z",
      "role": "user",
      "is_active": true,
      "created_at": "2023-09-27T14:14:33.775514Z",
      "updated_at": "2024-04-17T08:05:47.998128Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/users/1f53398d-843f-4bc5-8e0f-9841ab294274/"
    },
    {
      "id": "b23af455-a10b-4cf3-a981-ab592f45cffc",
      "username": "Erika.Musterfrau",
      "first_name": "Erika",
      "last_name": "Musterfrau",
      "email": "erika.musterfrau@example.com",
      "notification_email": "",
      "staff_number": "2",
      "description": "Benutzer wurde vorübergehend deaktiviert (Elternzeit).",
      "birth_date": "1984-12-12",
      "birth_place": "",
      "organization": "Musterfirma GmbH",
      "department": "",
      "job_title": "",
      "street_address": "",
      "postal_code": "",
      "city": "",
      "country": "",
      "phone": "",
      "language": "de",
      "last_active": "2023-11-28T11:18:06.980792Z",
      "role": "user",
      "is_active": false,
      "created_at": "2022-10-27T14:22:58.747621Z",
      "updated_at": "2024-04-13T10:04:28.880606Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/users/b23af455-a10b-4cf3-a981-ab592f45cffc/"
    }
  ]
]

Dieser API-Endpunkt gibt eine Liste aller Benutzer zurück.

HTTP-Anfrage

GET/v1/users/

HTTP-Anfrage: Query-Parameter

Parameter Beschreibung
id string <uuid>
Ein Filter für das Feld id eines Benutzerobjekts.
username string
Ein Filter für das Feld username eines Benutzerobjekts.
first_name string
Ein Filter für das Feld first_name eines Benutzerobjekts.
last_name string
Ein Filter für das Feld last_name eines Benutzerobjekts.
email string <email>
Ein Filter für das Feld email eines Benutzerobjekts.
language string
Ein Filter für das Feld language eines Benutzerobjekts.
role string
Ein Filter für das Feld role eines Benutzerobjekts.
is_active boolean
Ein Filter für das Feld is_active eines Benutzerobjekts.
search string
Ein Suchbegriff, nach welchem in den Feldern id, username, first_name, last_name, email und description eines Benutzerobjekts gesucht wird.
ordering string
Ein Feld oder mehrere durch Komma getrennte Felder, nach welchen die Liste der Benutzerobjekte sortiert wird. Zur Auswahl stehen die Felder username, first_name, last_name, email, last_active, created_at und updated_at eines Benutzerobjekts.
page integer
Eine Seitenzahl innerhalb der paginierten Ergebnisse.

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Benutzer
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Benutzer-Objekt>
Liste von Benutzer-Objekten

Einen Benutzer erstellen

Beispielcode:

curl -X POST "https://api.schulungstool.de/v1/users/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "1f53398d-843f-4bc5-8e0f-9841ab294274",
  "username": "Max.Mustermann",
  "first_name": "Max",
  "last_name": "Mustermann",
  "email": "max.mustermann@example.com",
  "notification_email": "",
  "staff_number": "1",
  "description": "Beschreibung des Benutzers",
  "birth_date": "1990-02-04",
  "birth_place": "Berlin",
  "organization": "Musterfirma GmbH",
  "department": "Logistik",
  "job_title": "",
  "street_address": "",
  "postal_code": "",
  "city": "Berlin",
  "country": "DE",
  "phone": "",
  "language": "de",
  "last_active": null,
  "role": "user",
  "is_active": true,
  "created_at": "2022-09-27T14:14:33.775514Z",
  "updated_at": "2022-09-27T14:14:33.775530Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/users/1f53398d-843f-4bc5-8e0f-9841ab294274/"
}

Dieser API-Endpunkt erstellt einen Benutzer.

HTTP-Anfrage

POST/v1/users/

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
username stringerforderlich
Benutzername des Benutzers
first_name stringerforderlich
Vorname des Benutzers
last_name stringerforderlich
Nachname des Benutzers
password stringerforderlich
Passwort des Benutzers
email string <email>
E-Mail-Adresse des Benutzers
Standardwert: null
language string
Sprache des Benutzers (Sprachcode nach ISO 639-1, z. B. "de")
Standardwert: "de"
is_active boolean
true: Benutzer ist aktiviert
false: Benutzer ist deaktiviert
Standardwert: true
notification_email string <email>
Zusätzliche E-Mail-Adresse des Benutzers für Benachrichtigungen
Standardwert: ""
staff_number string
Personalnummer des Benutzers
Standardwert: ""
description string
Beschreibung des Benutzers
Standardwert: ""
birth_date string <date>
Geburtsdatum des Benutzers (Datumsformat nach ISO 8601: YYYY-MM-DD, z. B. "1990-01-19")
Standardwert: null
birth_place string
Geburtsort des Benutzers
Standardwert: ""
organization string
Organisation des Benutzers
Standardwert: ""
department string
Abteilung des Benutzers
Standardwert: ""
job_title string
Position des Benutzers
Standardwert: ""
street_address string
Straße und Nr. des Benutzers
Standardwert: ""
postal_code string
Postleitzahl des Benutzers
Standardwert: ""
city string
Ort des Benutzers
Standardwert: ""
country string
Land des Benutzers
Standardwert: ""
phone string
Telefonnummer des Benutzers
Standardwert: ""

HTTP-Antwort (Content-Type: application/json)

Statuscode 201:

Ein Benutzer-Objekt

Einen Benutzer einladen

Beispielcode:

curl -X POST "https://api.schulungstool.de/v1/users/invite/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "1f53398d-843f-4bc5-8e0f-9841ab294274",
  "username": "max.mustermann",
  "first_name": "Max",
  "last_name": "Mustermann",
  "email": "max.mustermann@example.com",
  "notification_email": "",
  "staff_number": "",
  "description": "",
  "birth_date": "",
  "birth_place": "",
  "organization": "",
  "department": "",
  "job_title": "",
  "street_address": "",
  "postal_code": "",
  "city": "",
  "country": "",
  "phone": "",
  "language": "de",
  "last_active": null,
  "role": "user",
  "is_active": true,
  "created_at": "2022-09-27T14:14:33.775514Z",
  "updated_at": "2022-09-27T14:14:33.775530Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/users/1f53398d-843f-4bc5-8e0f-9841ab294274/"
}

Dieser API-Endpunkt lädt einen Benutzer per E-Mail ein.

HTTP-Anfrage

POST/v1/users/invite/

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
email string <email>erforderlich
E-Mail-Adresse des Benutzers, der eingeladen wird
inviter string <uuid>erforderlich
Die ID des Benutzers, der den Benutzer einlädt
language string
Sprache der E-Mail-Einladung (Sprachcode nach ISO 639-1, z. B. "de")
Standardwert: "de"

HTTP-Antwort (Content-Type: application/json)

Statuscode 201:

Ein Benutzer-Objekt

Einen Benutzer abrufen

Beispielcode:

curl "https://api.schulungstool.de/v1/users/{user_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "id": "1f53398d-843f-4bc5-8e0f-9841ab294274",
  "username": "Max.Mustermann",
  "first_name": "Max",
  "last_name": "Mustermann",
  "email": "max.mustermann@example.com",
  "notification_email": "",
  "staff_number": "1",
  "description": "Beschreibung des Benutzers",
  "birth_date": "1990-02-04",
  "birth_place": "Berlin",
  "organization": "Musterfirma GmbH",
  "department": "Logistik",
  "job_title": "",
  "street_address": "",
  "postal_code": "",
  "city": "Berlin",
  "country": "DE",
  "phone": "",
  "language": "de",
  "last_active": null,
  "role": "user",
  "is_active": true,
  "created_at": "2022-09-27T14:14:33.775514Z",
  "updated_at": "2022-09-27T14:14:33.775530Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/users/1f53398d-843f-4bc5-8e0f-9841ab294274/"
}

Dieser API-Endpunkt gibt einen Benutzer zurück.

HTTP-Anfrage

GET/v1/users/{user_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
user_id string <uuid>
Die ID des abzurufenden Benutzers.

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Benutzer-Objekt

Einen Benutzer bearbeiten

Beispielcode:

curl -X PATCH "https://api.schulungstool.de/v1/users/{user_id}/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "1f53398d-843f-4bc5-8e0f-9841ab294274",
  "username": "Max.Mustermann",
  "first_name": "Max",
  "last_name": "Mustermann",
  "email": "max.mustermann@example.com",
  "notification_email": "mmustermann.privat@gmail.com",
  "staff_number": "1",
  "description": "Beschreibung des Benutzers",
  "birth_date": "1990-02-04",
  "birth_place": "Berlin",
  "organization": "Musterfirma GmbH",
  "department": "Logistik",
  "job_title": "Fachkraft für Lagerlogistik",
  "street_address": "",
  "postal_code": "",
  "city": "Berlin",
  "country": "DE",
  "phone": "",
  "language": "de",
  "last_active": null,
  "role": "user",
  "is_active": true,
  "created_at": "2022-09-27T14:14:33.775514Z",
  "updated_at": "2022-09-27T14:14:33.775530Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/users/1f53398d-843f-4bc5-8e0f-9841ab294274/"
}

Dieser API-Endpunkt bearbeitet einen Benutzer.

HTTP-Anfrage

PATCH/v1/users/{user_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
user_id string <uuid>
Die ID des zu bearbeitenden Benutzers.

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
username string
Benutzername des Benutzers
first_name string
Vorname des Benutzers
last_name string
Nachname des Benutzers
password string
Passwort des Benutzers
email string <email> oder null
E-Mail-Adresse des Benutzers
language string
Sprache des Benutzers (Sprachcode nach ISO 639-1, z. B. "de")
is_active boolean
true: Benutzer ist aktiviert
false: Benutzer ist deaktiviert
notification_email string <email>
Zusätzliche E-Mail-Adresse des Benutzers für Benachrichtigungen
staff_number string
Personalnummer des Benutzers
description string
Beschreibung des Benutzers
birth_date string <date> oder null
Geburtsdatum des Benutzers (Datumsformat nach ISO 8601: YYYY-MM-DD, z. B. "1990-01-19")
birth_place string
Geburtsort des Benutzers
organization string
Organisation des Benutzers
department string
Abteilung des Benutzers
job_title string
Position des Benutzers
street_address string
Straße und Nr. des Benutzers
postal_code string
Postleitzahl des Benutzers
city string
Ort des Benutzers
country string
Land des Benutzers
phone string
Telefonnummer des Benutzers

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Benutzer-Objekt

Einen Benutzer löschen

Beispielcode:

curl -X DELETE "https://api.schulungstool.de/v1/users/{user_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Dieser API-Endpunkt löscht einen Benutzer.

HTTP-Anfrage

DELETE/v1/users/{user_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
user_id string <uuid>
Die ID des zu löschenden Benutzers.

HTTP-Antwort

Statuscode 204:

Der Benutzer wurde erfolgreich gelöscht.

Alle Gruppen eines Benutzers auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/users/{user_id}/groups/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "40c40d56-5e5e-438e-9642-184cc44e527a",
      "name": "Alle Mitarbeiter",
      "description": "Diese Gruppe umfasst alle Mitarbeiter.",
      "created_at": "2022-12-06T11:55:22.687256Z",
      "updated_at": "2022-12-06T11:55:22.687271Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/groups/40c40d56-5e5e-438e-9642-184cc44e527a/"
    },
    {
      "id": "5679eb14-0268-40dc-890d-18ef5be6f835",
      "name": "Produktion",
      "description": "Diese Gruppe umfasst alle Mitarbeiter der Produktion.",
      "created_at": "2022-12-06T12:17:29.065341Z",
      "updated_at": "2024-04-17T08:07:52.425848Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/groups/5679eb14-0268-40dc-890d-18ef5be6f835/"
    }
  ]
}

Dieser API-Endpunkt gibt eine Liste aller Gruppen eines Benutzers zurück.

HTTP-Anfrage

GET/v1/users/{user_id}/groups/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
user_id string <uuid>
Die ID des Benutzers, dessen Gruppen aufgelistet werden.

HTTP-Anfrage: Query-Parameter

siehe Query Parameter bei Alle Gruppen auflisten

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Gruppen
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Gruppe-Objekt>
Liste von Gruppe-Objekten

Alle Kursteilnahmen eines Benutzers auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/users/{user_id}/participations/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "a3afcc8e-9c3d-43c2-80e2-70912ef9c05e",
      "user": "1f53398d-843f-4bc5-8e0f-9841ab294274",
      "course": "ce9fb46d-0ade-4678-85f7-c6dbcdde3d86",
      "due_date": "2024-06-30",
      "completed_at": null,
      "status": "pending",
      "created_at": "2024-04-04T14:21:14.935642Z",
      "updated_at": "2024-04-04T14:21:14.935653Z",
      "learn_url": "https://demo.schulungstool.de/learn/a3afcc8e-9c3d-43c2-80e2-70912ef9c05e/",
      "dashboard_url": "https://demo.schulungstool.de/admin/participations/a3afcc8e-9c3d-43c2-80e2-70912ef9c05e/"
    },
    {
      "id": "65ef95d4-5352-496a-88b1-e1d194b8dc0a",
      "user": "1f53398d-843f-4bc5-8e0f-9841ab294274",
      "course": "6f061188-25a5-4899-a5df-bf975533149e",
      "due_date": "2023-10-30",
      "completed_at": "2022-10-27T14:27:17.120433Z",
      "status": "done",
      "created_at": "2023-09-01T14:15:58.099412Z",
      "updated_at": "2023-10-27T14:27:17.145123Z",
      "learn_url": "https://demo.schulungstool.de/learn/65ef95d4-5352-496a-88b1-e1d194b8dc0a/",
      "dashboard_url": "https://demo.schulungstool.de/admin/participations/65ef95d4-5352-496a-88b1-e1d194b8dc0a/"
    }
  ]
}

Dieser API-Endpunkt gibt eine Liste aller Kursteilnahmen eines Benutzers zurück.

HTTP-Anfrage

GET/v1/users/{user_id}/participations/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
user_id string <uuid>
Die ID des Benutzers, dessen Kursteilnahmen aufgelistet werden.

HTTP-Anfrage: Query-Parameter

siehe Query Parameter bei Alle Kursteilnahmen auflisten

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Kursteilnahmen
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Kursteilnahme-Objekt>
Liste von Kursteilnahme-Objekten

Beispielcode:

curl -X POST "https://api.schulungstool.de/v1/users/3c1dd117-0d56-4e88-adc0-cd22977a3fb0/login-link/" \
     -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "url": "https://demo.schulungstool.de/accounts/login/3c1dd117-0d56-4e88-adc0-cd22977a3fb0:1rVd0d:ZOJ9Wc49-CaJdehS-t9ZswFGqh696QDEbDtAn-oEDd8/"
}

Dieser API-Endpunkt erstellt einen Login-Link für einen Benutzer. Login-Links werden auch Magic Link genannt.

Mit Login-Links können Benutzer passwortlos in Schulungstool eingeloggt werden.

Wird ein Benutzer zum Login-Link weitergeleitet, wird der Benutzer über den Login-Link automatisch angemeldet.

An den Login-Link kann der Parameter ?next=<redirect-url> angehängt werden. Nach dem Login wird der Benutzer automatisch an die <redirect-url> (z. B. an die learn_url einer Kursteilnahme) weitergeleitet.

Einschränkungen:

HTTP-Anfrage

POST/v1/users/{user_id}/login-link/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
user_id string <uuid>erforderlich
Die ID des Benutzers, für den der Login-Link generiert wird.

HTTP-Antwort (Content-Type: application/json)

Statuscode 201:

Schlüssel Wert
url string <url>
Der generierte Login-Link.

Gruppen

Endpunkte

Das Gruppe-Objekt

{
  "id": "string <uuid>",
  "name": "string",
  "description": "string",
  "created_at": "string <date-time>",
  "updated_at": "string <date-time>",
  "dashboard_url": "string <url>"
}
Attribut Beschreibung
id string <uuid>
ID der Gruppe
name string
Name der Gruppe
description string
Beschreibung der Gruppe
created_at string <date-time>
Zeitpunkt der Erstellung der Gruppe
updated_at string <date-time>
Zeitpunkt der letzten Aktualisierung der Gruppe
dashboard_url string <url>
URL zur Detailansicht der Gruppe im Administrationsbereich Ihres Schulungstool-Kontos

Alle Gruppen auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/groups/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

[
  "count": 3,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "40c40d56-5e5e-438e-9642-184cc44e527a",
      "name": "Alle Mitarbeiter",
      "description": "Diese Gruppe umfasst alle Mitarbeiter.",
      "created_at": "2022-12-06T11:55:22.687256Z",
      "updated_at": "2022-12-06T11:55:22.687271Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/groups/40c40d56-5e5e-438e-9642-184cc44e527a/"
    },
    {
      "id": "5679eb14-0268-40dc-890d-18ef5be6f835",
      "name": "Produktion",
      "description": "Diese Gruppe umfasst alle Mitarbeiter der Produktion.",
      "created_at": "2022-12-06T12:17:29.065341Z",
      "updated_at": "2024-04-17T08:07:52.425848Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/groups/5679eb14-0268-40dc-890d-18ef5be6f835/"
    },
    {
      "id": "b635a56e-25e1-4f68-995a-6aa07d8f7c19",
      "name": "Verwaltung",
      "description": "",
      "created_at": "2022-12-06T09:45:56.273875Z",
      "updated_at": "2024-01-11T14:11:37.158519Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/groups/b635a56e-25e1-4f68-995a-6aa07d8f7c19/"
    }
  ]
]

Dieser API-Endpunkt gibt eine Liste aller Gruppen zurück.

HTTP-Anfrage

GET/v1/groups/

HTTP-Anfrage: Query-Parameter

Parameter Beschreibung
id string <uuid>
Ein Filter für das Feld id eines Gruppeobjekts.
name string
Ein Filter für das Feld name eines Gruppeobjekts.
search string
Ein Suchbegriff, nach welchem in den Feldern id, name und description eines Gruppeobjekts gesucht wird.
ordering string
Ein Feld oder mehrere durch Komma getrennte Felder, nach welchen die Liste der Gruppeobjekte sortiert wird. Zur Auswahl stehen die Felder name, created_at und updated_at eines Gruppeobjekts.
page integer
Eine Seitenzahl innerhalb der paginierten Ergebnisse.

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Gruppen
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Gruppe-Objekt>
Liste von Gruppe-Objekten

Eine Gruppe erstellen

Beispielcode:

curl -X POST "https://api.schulungstool.de/v1/groups/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "40c40d56-5e5e-438e-9642-184cc44e527a",
  "name": "Alle Mitarbeiter",
  "description": "Diese Gruppe umfasst alle Mitarbeiter.",
  "created_at": "2022-12-06T11:55:22.687256Z",
  "updated_at": "2022-12-06T11:55:22.687271Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/groups/40c40d56-5e5e-438e-9642-184cc44e527a/"
}

Dieser API-Endpunkt erstellt eine Gruppe.

HTTP-Anfrage

POST/v1/groups/

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
name stringerforderlich
Name der Gruppe
description string
Beschreibung der Gruppe
Standardwert: ""

HTTP-Antwort (Content-Type: application/json)

Statuscode 201:

Ein Gruppe-Objekt

Eine Gruppe abrufen

Beispielcode:

curl "https://api.schulungstool.de/v1/groups/{group_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "id": "40c40d56-5e5e-438e-9642-184cc44e527a",
  "name": "Alle Mitarbeiter",
  "description": "Diese Gruppe umfasst alle Mitarbeiter.",
  "created_at": "2022-12-06T11:55:22.687256Z",
  "updated_at": "2022-12-06T11:55:22.687271Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/groups/40c40d56-5e5e-438e-9642-184cc44e527a/"
}

Dieser API-Endpunkt gibt eine Gruppe zurück.

HTTP-Anfrage

GET/v1/groups/{group_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
group_id string <uuid>
Die ID der abzurufenden Gruppe

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Gruppe-Objekt

Eine Gruppe bearbeiten

Beispielcode:

curl -X PATCH "https://api.schulungstool.de/v1/groups/{group_id}/" \
  -H "Authorization: Token <API-Schlüssel>" \
  -d "<Body-Parameter>"

Beispielantwort:

{
  "id": "40c40d56-5e5e-438e-9642-184cc44e527a",
  "name": "Alle Mitarbeiter",
  "description": "Diese Gruppe umfasst alle Mitarbeiter.",
  "created_at": "2022-12-06T11:55:22.687256Z",
  "updated_at": "2022-12-07T10:29:11.446151Z",
  "dashboard_url": "https://demo.schulungstool.de/admin/groups/40c40d56-5e5e-438e-9642-184cc44e527a/"
}

Dieser API-Endpunkt bearbeitet eine Gruppe.

HTTP-Anfrage

PATCH/v1/groups/{group_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
group_id string <uuid>
Die ID der zu bearbeitenden Gruppe.

HTTP-Anfrage: Body-Parameter

Parameter Beschreibung
name string
Name der Gruppe
description string
Beschreibung der Gruppe

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Ein Gruppe-Objekt

Eine Gruppe löschen

Beispielcode:

curl -X DELETE "https://api.schulungstool.de/v1/groups/{group_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Dieser API-Endpunkt löscht eine Gruppe.

HTTP-Anfrage

DELETE/v1/groups/{group_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
group_id string <uuid>
Die ID der zu löschenden Gruppe.

HTTP-Antwort

Statuscode 204:

Die Gruppe wurde erfolgreich gelöscht.

Alle Mitglieder einer Gruppe auflisten

Beispielcode:

curl "https://api.schulungstool.de/v1/groups/{group_id}/members/" \
  -H "Authorization: Token <API-Schlüssel>"

Beispielantwort:

{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "1f53398d-843f-4bc5-8e0f-9841ab294274",
      "username": "Max.Mustermann",
      "first_name": "Max",
      "last_name": "Mustermann",
      "email": "max.mustermann@example.com",
      "notification_email": "",
      "staff_number": "1",
      "description": "",
      "birth_date": "",
      "birth_place": "",
      "organization": "",
      "department": "",
      "job_title": "",
      "street_address": "",
      "postal_code": "",
      "city": "",
      "country": "",
      "phone": "",
      "language": "de",
      "last_active": "2024-03-02T12:53:54.191077Z",
      "role": "user",
      "is_active": true,
      "created_at": "2022-09-27T14:14:33.775514Z",
      "updated_at": "2024-04-17T08:05:47.998128Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/users/1f53398d-843f-4bc5-8e0f-9841ab294274/"
    },
    {
      "id": "b23af455-a10b-4cf3-a981-ab592f45cffc",
      "username": "Erika.Musterfrau",
      "first_name": "Erika",
      "last_name": "Musterfrau",
      "email": "erika.musterfrau@example.com",
      "notification_email": "",
      "staff_number": "2",
      "description": "Benutzer wurde vorübergehend deaktiviert (Elternzeit).",
      "birth_date": "",
      "birth_place": "",
      "organization": "",
      "department": "",
      "job_title": "",
      "street_address": "",
      "postal_code": "",
      "city": "",
      "country": "",
      "phone": "",
      "language": "de",
      "last_active": "2022-11-28T11:18:06.980792Z",
      "role": "user",
      "is_active": false,
      "created_at": "2022-10-27T14:22:58.747621Z",
      "updated_at": "2024-04-13T10:04:28.880606Z",
      "dashboard_url": "https://demo.schulungstool.de/admin/users/b23af455-a10b-4cf3-a981-ab592f45cffc/"
    }
  ]
}

Dieser API-Endpunkt gibt eine Liste aller Mitglieder einer Gruppe zurück.

HTTP-Anfrage

GET/v1/groups/{group_id}/members/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
group_id string <uuid>
Die ID der Gruppe, deren Mitglieder aufgelistet werden.

HTTP-Anfrage: Query-Parameter

siehe Query Parameter bei Alle Benutzer auflisten

HTTP-Antwort (Content-Type: application/json)

Statuscode 200:

Schlüssel Wert
count integer
Anzahl der gefundenen Benutzer
next string <url> oder null
Siehe Paginierung
previous string <url> oder null
Siehe Paginierung
results array <Benutzer-Objekt>
Liste von Benutzer-Objekten

Mitgliedschaft in einer Gruppe überprüfen

Beispielcode:

curl "https://api.schulungstool.de/v1/groups/{group_id}/members/{user_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Dieser API-Endpunkt prüft, ob ein Benutzer Mitglied in einer Gruppe ist.

HTTP-Anfrage

GET/v1/groups/{group_id}/members/{user_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
group_id string <uuid>
Die ID der Gruppe.
user_id string <uuid>
Die ID des Benutzers, dessen Gruppenmitgliedschaft überprüft wird.

HTTP-Antwort

Statuscode 204:

Der Benutzer ist Mitglied der Gruppe.

Statuscode 404:

Der Benutzer ist kein Mitglied der Gruppe.

Ein Mitglied zu einer Gruppe hinzufügen

Beispielcode:

curl -X PUT "https://api.schulungstool.de/v1/groups/{group_id}/members/{user_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Dieser API-Endpunkt fügt ein Mitglied zu einer Gruppe hinzu.

HTTP-Anfrage

PUT/v1/groups/{group_id}/members/{user_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
group_id string <uuid>
Die ID der Gruppe.
user_id string <uuid>
Die ID des Benutzers, der als Mitglied zur Gruppe hinzugefügt wird.

HTTP-Antwort

Statuscode 204:

Der Benutzer ist Mitglied der Gruppe.

Ein Mitglied aus einer Gruppe entfernen

Beispielcode:

curl -X DELETE "https://api.schulungstool.de/v1/groups/{group_id}/members/{user_id}/" \
  -H "Authorization: Token <API-Schlüssel>"

Dieser API-Endpunkt entfernt ein Mitglied aus einer Gruppe.

HTTP-Anfrage

DELETE/v1/groups/{group_id}/members/{user_id}/

HTTP-Anfrage: Path-Parameter

Parameter Beschreibung
group_id string <uuid>
Die ID der Gruppe.
user_id string <uuid>
Die ID des Benutzers, der aus der Gruppe entfernt wird.

HTTP-Antwort

Statuscode 204:

Der Benutzer ist kein Mitglied der Gruppe.