3.4 KiB
API-Dokumentation
Basis-URL
http://localhost:5000/api
Authentifizierung
Die meisten Endpunkte erfordern eine Authentifizierung über JWT-Token. Das Token muss im Authorization-Header mitgeführt werden:
Authorization: Bearer <token>
Öffentliche Endpunkte
GET /api/public/users
Ruft alle verfügbaren Stöberhundeführer ab.
Response:
{
"success": true,
"data": [
{
"_id": "...",
"name": "Frank Dahlem",
"address": "Neues Land 17, 29649 Wietzendorf",
"phone": "05196-3849802",
"type": "HS",
"available": true,
"gps": {
"lat": 52.5,
"lng": 9.5
},
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
]
}
Authentifizierung
POST /api/auth/login
Admin-Login.
Request Body:
{
"username": "admin",
"password": "password"
}
Response:
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": "...",
"username": "admin"
}
}
Geschützte Endpunkte (Admin)
GET /api/users
Ruft alle Stöberhundeführer ab (auch nicht verfügbare).
Headers:
Authorization: Bearer <token>
Response:
{
"success": true,
"data": [...]
}
GET /api/users/:id
Ruft einen einzelnen Stöberhundeführer ab.
Headers:
Authorization: Bearer <token>
Response:
{
"success": true,
"data": {...}
}
POST /api/users
Erstellt einen neuen Stöberhundeführer.
Headers:
Authorization: Bearer <token>
Request Body:
{
"name": "Max Mustermann",
"address": "Musterstraße 1, 12345 Musterstadt",
"phone": "01234-567890",
"type": "HS",
"available": true,
"gps": {
"lat": 52.5,
"lng": 9.5
}
}
Response:
{
"success": true,
"data": {...}
}
PUT /api/users/:id
Aktualisiert einen Stöberhundeführer.
Headers:
Authorization: Bearer <token>
Request Body:
{
"name": "Max Mustermann",
"address": "Neue Adresse",
...
}
Response:
{
"success": true,
"data": {...}
}
DELETE /api/users/:id
Löscht einen Stöberhundeführer.
Headers:
Authorization: Bearer <token>
Response:
{
"success": true,
"message": "Benutzer erfolgreich gelöscht"
}
PUT /api/users/:id/availability
Aktualisiert die Verfügbarkeit eines Stöberhundeführers.
Headers:
Authorization: Bearer <token>
Request Body:
{
"available": true
}
Response:
{
"success": true,
"data": {...}
}
PUT /api/users/:id/gps
Aktualisiert die GPS-Koordinaten eines Stöberhundeführers.
Headers:
Authorization: Bearer <token>
Request Body:
{
"lat": 52.5,
"lng": 9.5
}
Response:
{
"success": true,
"data": {...}
}
GET /api/users/export
Exportiert alle Stöberhundeführer.
Headers:
Authorization: Bearer <token>
Query Parameters:
format:csvoderjson(Standard:json)
Response:
- CSV: Datei-Download
- JSON: JSON-Objekt mit allen Benutzern
Fehlerbehandlung
Alle Fehler folgen diesem Format:
{
"success": false,
"message": "Fehlermeldung"
}
HTTP-Status-Codes:
200: Erfolg201: Erstellt400: Ungültige Anfrage401: Nicht authentifiziert403: Nicht autorisiert404: Nicht gefunden500: Serverfehler