Repository navigation
API Documentation
Für den Benutzer Login wird ein Passwort und ein Benutzername benötigt.
Sobald diese eingegeben werden wir ein JSON Web Token generiert, der nun unser 'Acces Token' ist. Er ist für den Login 30 Minuten gültig.
Der Login wird mit dem API-Call /token durchgeführt. Bei jedem Request bei dem es benötigt wird, wird der JWT-Token im Header mitgegeben.
Security Schema: OAuth2
Für das Ausprobieren der API-Calls steht eine grafische Oberfläche im Browser zur Verfügung.
Diese kann unter http://127.0.0.1:8000/docs oder http://127.0.0.1:8000/redoc eingesehen werden, wenn die Container gestartet sind.
Oben rechts ist ein 'Authorize'-Button in dem man sich mit dem Testbenutzer: username: testUser , password: 123
Die Oberfläche dient der beispielhaften Erläuterung der Funktionen der API und stellt eine Erweiterung zu diesem Dokument dar.
Bei einem erfolgreichen Response wird folgendes zurückgegeben:
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJqdyIsImV4cCI6MTY0ODQ5MzQzOX0.ZjZzCVeO00YrW_SIitCL0WFm2L9CRwjKMy20tJBNgO0", "token_type": "bearer" }
Für die /user-Calls muss man nicht bei allen Calls authentifiziert sein.
GET
Gibt den aktuellen Benutzernamen und seine E-Mail-Adresse zurück.
Für diesen Call muss man authentifiziert sein.
Response Body:
{
"userName": "string",
"email": "string"
}
POST
Kreiert einen Benutzer in der Datenbank.
Request Body:
{
"userName": "string",
"email": "string",
"password": "string"
}
POST
Gibt den aktuellen Wert der Coins im Wallet des angemeldeten Users zurück.
Die History Calls werden dazu genutzt die Fahrtenhistorie des Nutzers anzuzeigen.
GET Mit diesem Call erhält man die aktuellen Fahrtenhistorie des angemeldeten Benutzers.
Response Body:
[
{
"dateTime": "2022-01-28T19:12:42",
"userID": 3,
"receivedCoins": 0,
"distanceTraveled": 0,
"historyID": 5
}
]
POST Dieser API-Call fügt eine neue Fahrt in die Fahrtenhistorie ein.
Request Body:
{
"dateTime": "2022-01-28T19:12:42.774Z",
"distanceTraveled": 0,
"receivedCoins": 0
}
POST Löscht eine Fahrt anhand der history_id aus der Fahrtenliste heraus.
Eingabeparameter: history_id : integer
Response Body: Gibt die Anzahl der gelöschten Fahrtenhistorien zurück.
Für alle /coordinates Calls muss man authentifiziert sein.
POST Kreiert einen Eintrag in der Koordinaten Tabelle der Datenbank.
Request Body:
{
"tourID": 0,
"tourNumber": 0,
"longitude": 0,
"latitude": 0,
"datetime": "2022-03-28T19:37:59.181Z"
}
POST Löscht einen Eintrag in der Koordinaten Tabelle.
Hierfür muss die tour_id mitgegeben werden.
tour_id : integer
Response Body: Gibt die Anzahl der gelöschten Einträge zurück.
POST Beim Aufrufen dieses Calls werden alle Koordinaten Einträge mit derselben tour_id zu einer Gesamtstrecke berechnet. Diese Gesamtstrecke wird dann in der Fahrtenhistorie Tabelle abgespeichert.
Eingabeparameter: tour_id : integer