API Dokumentation
Inhaltsverzeichnis
-
API-Anbindung
-
Verfügbare Methoden
-
Allgemeines zu den Angaben im Request
-
Validierung
-
Authentifizierung
-
Erläuterungen zu den einzelnen Endpunkten
Mit der Smartphone-App DriversCheck kontrollieren die FahrerInnen eines Unternehmens ihre Führerscheine ortsunabhängig und dennoch sicher. Neben der direkten Kontrolle über die DriversCheck App, können Unternehmen die Funktion der elektronischen Führerscheinkontrolle ebenfalls in Ihre eigene Software einbinden.
1. API-Anbindung
Über die Schnittstelle binden Unternehmen die Funktion der elektronischen Führerscheinkontrolle in die eigene Software ein.
Was ist eine REST-API?
Die REST-API (RESTful API) ist eine API, die den Beschränkungen der REST-Architektur unterliegt und Interaktionen mit RESTful Webservices ermöglicht. REST-API´s verwenden eine einheitliche Schnittstelle für die Kommunikation und erleichtert verschiedenen Systemen, miteinander zu kommunizieren.
Was ist REST?
REST bedeutet „Representational State Transfer“ und beschreibt eine Sammlung von Architekturbeschränkungen, die flexibel implementiert werden können. REST legt die Bedingungen zur Funktionsweise einer API fest.
Unabhängig von der Größe eines Unternehmens bringt die Umstellung auf die elektronische Führerscheinkontrolle keine Einschränkungen eingespielter Arbeitsprozesse mit sich. Dank der Einbindung über eine API wirkt DriversCheck mehr wie ein Add-On, welches das Grundsystem durch eine modernen Führerscheinkontrolle erweitert. Hierfür sind zumeist nur kleine Anpassungen notwendig, damit beide Systeme zuverlässig miteinander kommunizieren können.
2. Verfügbare Methoden
|
GET
|
liefert Daten von Organisationen oder Mitarbeitern aus DriversCheck - Zugriffsberechtigung erfolgt über die Authentifizierung
|
|
PUT
|
aktualisiert bestehende Daten anhand der UUID der Organisation oder des Mitarbeiters
|
|
POST
|
erstellt neue Daten anhand mitgelieferter Angaben - beim Anlegen einer neuen Organisation oder eines neuen Mitarbeiters, wird eine UUID individuell und automatisch durch das System erstellt - die jeweilige UUID ist dem Response zu entnehmen
|
|
DELETE
|
löscht Daten eines Mitarbeiters - die zweifelsfreie Zuordnung erfolgt über die UUID des Mitarbeiters
|
3. Allgemeines zu den Angaben im Request
Unter Schema kann im Detail nachvollzogen werden, in welcher Form die Angaben im Request-Body erfolgen müssen, sofern eine Angabe erforderlich/erwünscht ist.

4. Validierung
Alle Felder, die bei einem Request angegeben werden, werden entsprechend den Vorgaben validiert.

Bei einer fehlgeschlagenen Validierung gegen das JSON-Schema, wird eine Fehlermeldung ausgegeben.
Beispiel:
"message": "All array items must match schema: https://api2.drivers-check.de/schema/uuid_list.json"
}
Die gelieferten Daten können mittels der Schema-Datei unter https://www.jsonschemavalidator.net/ abgeglichen werden.
Anzeige/Auswahl verschiedener Berechtigungen und Module
Berechtigungen:

Wird bei Erstellung eines Mitarbeiters kein Wert hinterlegt, erhalten diese Flags den angegebenen Default-Wert. Die Datenänderung kann über den PUT-Request erfolgen.
Module:

Wird bei Erstellung eines Mitarbeiters kein Wert hinterlegt, erhalten diese Flags den angegebenen Default-Wert. Die Datenänderung kann über den PUT-Request erfolgen.
5. Authentifizierung
Die Authentifizierung erfolgt über einen POST-Request mittels Username, Passwort und API-Key. Der API-Key muss im Header angegeben werden und wird über den Kundenservice aktiviert.
Hinterlegung x-api-key, Beispiel Postman:

Nach Ausführung des Requests wird als Antwort der Bearer-Token zurückgegeben.

Der Bearer-Token aus dem Authentifizierungs-Request muss in allen weiteren Anfragen hinterlegt werden. Dabei ist darauf zu achten, dass dieser identisch und gültig ist.

💡
Erfolgt nach einem Request diese Meldung, ist die Gültigkeit abgelaufen oder der Token nicht identisch.

Nach Ablauf der Gültigkeit, muss der Authentifizierungs-Request erneut durchgeführt werden.
6. Erläuterungen zu den einzelnen Endpunkten
Organisationen
GET/organisations
Es wird eine Liste aller aktiven UUIDs angezeigt, zu welchen der aktuell authentifizierte Nutzer zugriffsberechtigt ist. Die Rückgabe besteht aus einem JSON Array, welches die UUIDs beinhalten.
Optional gibt es die Möglichkeit, im Body des Requests die UUID´s der Organisationen / der Organisation anzugeben, um die Detailinformationen der angegebenen Organisationen abzurufen.

POST/organisations
Es können unter einer bestehenden UUID (Hauptorganisation oder Unterorganisation) neue Organisationen angelegt werden. Dem Response wird die erfolgreiche/fehlgeschlagene Erstellung entnommen.
PUT/organisations
Es werden die im Request angegebenen Daten der Organisation/ der Organisationen geändert. Dazu muss die entsprechende UUID und die zu ändernden Daten im Request-Body hinterlegt sein. Weiterführende Informationen zu den Angaben im Request befinden sich in den allgemeinen Hinweisen. Das Änderungsergebnis enthält Informationen, ob der Request erfolgreich durchgeführt werden konnte.
Mitarbeiter der Organisation
GET/organisation/{uuidOrganisation}/employees
Keine Angabe im Request-Body:
Es wird eine Liste aller aktiven Mitarbeiter angezeigt, die der in der URL angegebenen UUID-Organisation zugehörig sind.
Angabe der UUID im Request-Body:
Sofern eine JSON-Liste von UUID im Request-Body definiert ist, wird eine Liste von Detailinformationen zu Mitarbeitern welche durch Angabe derer UUID im Body des Request definiert wurden, ausgegeben. Es können maximal 100 Mitarbeiter in einem Request abgefragt werden.
Fehlerhaft, unbekannt oder Detailinformationen zu welchen der aktuelle API User nicht berechtigt ist, werden ignoriert und nicht ausgeliefert.
Abrufbare Daten werden dem Response-Body entnommen.
POST/organisation/{uuidOrganisation}/employees
Hier können unter einer bestehenden UUID-Organisation (Hauptorganisation oder Unterorganisation) neue Mitarbeiter angelegt werden.
Hierbei wird für jeden Nutzer eine Individuelle UUID generiert, welche dem Mitarbeiter im eigenen System zugeordnet werden muss.
Für die Zuordnung im eigenen System können folgende Wege genutzt werden:
- Es wird ein eindeutiges Zuordnungsmerkmal (z.B. Personalnummer) übermittelt. Dieses Merkmal wird im Response mit der UUID zurückgegeben.
- Die Zuordnung kann über eine Reihenfolge der Objekte durchgeführt werden (gleichbleibend gemäß Lieferung)
- Die Nutzer können einzeln angelegt werden.
Die UUID wird ausschließlich durch die Anlage generiert und im Response zurückgegeben. Eine vorherige Vergabe ist nicht möglich.
PUT/organisation/{uuidOrganisation}/employees
Es werden die im Request angegebenen Daten des Mitarbeiters geändert. Dazu muss die entsprechende UUID der Organisation in der URL und die zu ändernden Daten im Request-Body hinterlegt sein.
Mitarbeiter
GET/employees
Keine Angabe im Request-Body:
Es wird eine Liste aller aktiven Mitarbeiter angezeigt, zu welchen der aktuell authentifizierte API-Nutzer zugriffsberechtigt ist.
Angabe der UUID im Request-Body:
Sofern eine JSON-Liste von UUID im Request-Body definiert ist, wird eine Liste von Detailinformationen zu Mitarbeitern welche durch Angabe derer UUID im Body des Request definiert wurden, ausgegeben. Es können maximal 100 Mitarbeiter in einem Request abgefragt werden.
Fehlerhaft, unbekannt oder Detailinformationen zu welchen der aktuelle API User nicht berechtigt ist, werden ignoriert und nicht ausgeliefert.
Abrufbare Daten werden dem Response-Body entnommen.
PUT/employees
Es werden alle in der Liste angegebenen Mitarbeiter aktualisiert . Dazu muss die entsprechende UUID des Mitarbeiters und der Organisation im Request-Body hinterlegt sein.
POST/employees
Es werden alle in der Liste erstellen Mitarbeiter angelegt. Die UUID-Organisation muss dabei im Request angegeben werden, unter die der Mitarbeiter angelegt werden soll. Es wird für jeden Nutzer eine Individuelle UUID generiert, welche dem Mitarbeiter im eigenen System zugeordnet werden muss.
DELETE/employees
Hier können mehre Mitarbeiter gelöscht werden. Maßgebend ist hierfür die Angabe der jeweiligen UUID´s der Mitarbeiter im Request-Body. Dem Response ist zu entnehmen, ob die Löschung erfolgreich durchgeführt wurde oder fehlgeschlagen ist.
successful: Die Daten des Mitarbeiters werden gelöscht. Wird die UUID des Mitarbeiter erneut im Request-Body eingegeben, wird diese unter „failed“ angezeigt.
failed: Die hier angezeigten UUID´s wurden nicht gelöscht. Grund hierfür kann eine Falscheingabe der UUID sein, oder der entsprechende Mitarbeiter wurde bereits gelöscht bzw. ist im System nicht vorhanden.
Einzelne Mitarbeiter
GET/employee/{uuidEmployee}
Es wird der Mitarbeiter angezeigt, dessen UUID in der URL angegeben wurde. Dem Response-Body werden die gespeicherten Daten entnommen.
PUT/employee/{uuidEmployee}
Es wird der Mitarbeiter aktualisiert, dessen UUID in der URL angegeben wurde. Dem Response-Body werden die gespeicherten Änderungen entnommen.
DELETE/employee/{uuidEmployee}
Es wird der Mitarbeiter gelöscht, dessen UUID in der URL angegeben wurde. Es erfolgt keine Werterückgabe
GET/employee/{uuidEmployee}/systemmessages
Es wird die letzte Systemnachricht und das entsprechende Erstellungsdaten der Nachricht angezeigt.
GET/employee/{uuidEmployee}/escalations
Es zeigt den Zeitstempel der letzten Eskalation zu den Modulen Führerscheinkontrolle und Fahrerunterweisung.
GET/employee/{uuidEmployee}/checkups
Hier werden Informationen zu den letzten durchgeführten Kontrollen angezeigt.
Führerscheinkontrolle:
- Handelt es sich um eine Selbstkontrolle?
- Wer hat die Kontrolle durchgeführt?
- Wann war die letzte Kontrolle?
- Wann ist die nächste Kontrolle?
- Ist die aktuelle Kontrolle gültig?
Fahrerunterweisung:
- Wann war die letzte Kontrolle?
- Wann ist die nächste Kontrolle?
- Ist die aktuelle Kontrolle gültig?