diff --git a/api.txt b/api.txt new file mode 100644 index 0000000..605c6b8 --- /dev/null +++ b/api.txt @@ -0,0 +1,156 @@ +# API Endpoints + +## Benutzerverwaltung + +### POST /users +- **Beschreibung**: Erstellt einen neuen Benutzer. Nur für Administratoren zugänglich. +- **Eingabe**: + ```json + { + "username": "neuerBenutzer", + "password": "sicheresPasswort", + "role": "user" // optional + } + ``` +- **Ausgabe**: + ```json + { + "message": "User created!" + } + ``` + +### POST /users/login +- **Beschreibung**: Meldet einen Benutzer an und gibt ein JWT-Token zurück. +- **Eingabe**: + ```json + { + "username": "benutzername", + "password": "passwort" + } + ``` +- **Ausgabe**: + ```json + { + "message": "Login successful!", + "token": "jwt_token", + "role": "user" // oder "admin" + } + ``` + +### GET /users +- **Beschreibung**: Gibt eine Liste aller Benutzer zurück. Nur für Administratoren zugänglich. +- **Ausgabe**: + ```json + [ + { + "id": 1, + "username": "admin", + "role": "admin", + "last_login": "2023-10-01 12:00:00" + }, + ... + ] + ``` + +### PUT /users/ +- **Beschreibung**: Aktualisiert die Informationen eines Benutzers. Nur für Administratoren zugänglich. +- **Eingabe**: + ```json + { + "username": "neuerBenutzername", + "role": "admin", // optional + "password": "neuesPasswort" // optional + } + ``` +- **Ausgabe**: + ```json + { + "message": "User updated!" + } + ``` + +### DELETE /users/ +- **Beschreibung**: Löscht einen Benutzer. Nur für Administratoren zugänglich. +- **Ausgabe**: + ```json + { + "message": "User deleted!" + } + ``` + +### PUT /users/change_password +- **Beschreibung**: Ändert das Passwort des angemeldeten Benutzers. +- **Eingabe**: + ```json + { + "current_password": "aktuellesPasswort", + "new_password": "neuesPasswort" + } + ``` +- **Ausgabe**: + ```json + { + "message": "Password changed successfully!" + } + ``` + +## Spieleverwaltung + +### POST /games +- **Beschreibung**: Fügt ein neues Spiel zur Sammlung hinzu. +- **Eingabe**: + ```json + { + "title": "Spiel Titel", + "image": "https://example.com/image.jpg" + } + ``` +- **Ausgabe**: + ```json + { + "message": "Game added!" + } + ``` + +### GET /games +- **Beschreibung**: Gibt eine Liste aller Spiele in der Sammlung zurück. +- **Ausgabe**: + ```json + [ + { + "id": 1, + "image": "base64_encoded_image", + "title": "Spiel Titel", + "date": "2023-10-01", + "buyer": "benutzername", + "owned": true + }, + ... + ] + ``` + +### DELETE /games/ +- **Beschreibung**: Löscht ein Spiel aus der Sammlung. +- **Ausgabe**: + ```json + { + "message": "Game deleted!" + } + ``` + +### GET /games/search +- **Beschreibung**: Sucht nach Spielen basierend auf einem Suchbegriff. +- **Ausgabe**: + ```json + [ + { + "title": "Spiel Titel", + "link": "https://example.com/game", + "image_link": "https://example.com/image.jpg", + "release_date": "2023-10-01", + "price": "$59.99", + "rating": "5/5" + }, + ... + ] + ```