MikaList/game_collection/README.md

145 lines
2.9 KiB
Markdown

# Game Collection API
Dies ist ein Backend mit Flask, das eine Sammlung von Spielen verwaltet und eine SQLite-Datenbank verwendet.
## Endpunkte
### 1. Spiele hinzufügen
- **URL:** `/games`
- **Method:** `POST`
- **Body:**
```json
{
"image": "URL zum Bild",
"title": "Titel des Spiels",
"date": "Kaufdatum (YYYY-MM-DD)",
"buyer": "Name des Käufers",
"owned": true/false
}
```
- **Antwort:**
- **Status 201:** Spiel erfolgreich hinzugefügt.
- **Beispiel:**
```json
{
"message": "Game added!"
}
```
### 2. Alle Spiele abrufen
- **URL:** `/games`
- **Method:** `GET`
- **Antwort:**
- **Status 200:** Liste aller Spiele.
- **Beispiel:**
```json
[
{
"id": 1,
"image": "URL zum Bild",
"title": "Titel des Spiels",
"date": "Kaufdatum",
"buyer": "Name des Käufers",
"owned": true
}
]
```
### 3. Benutzer erstellen
- **URL:** `/users`
- **Method:** `POST`
- **Body:**
```json
{
"username": "Benutzername",
"password": "Passwort",
"role": "user/admin" # Optional, Standard ist 'user'
}
```
- **Antwort:**
- **Status 201:** Benutzer erfolgreich erstellt.
- **Beispiel:**
```json
{
"message": "User created!"
}
```
### 4. Benutzeranmeldung
- **URL:** `/users/login`
- **Method:** `POST`
- **Body:**
```json
{
"username": "Benutzername",
"password": "Passwort"
}
```
- **Antwort:**
- **Status 200:** Anmeldung erfolgreich.
- **Beispiel:**
```json
{
"message": "Login successful!",
"role": "user/admin"
}
```
- **Status 401:** Ungültige Anmeldedaten.
- **Beispiel:**
```json
{
"message": "Invalid credentials!"
}
```
### 5. Alle Benutzer abrufen
- **URL:** `/users`
- **Method:** `GET`
- **Antwort:**
- **Status 200:** Liste aller Benutzer.
- **Beispiel:**
```json
[
{
"id": 1,
"username": "Benutzername",
"role": "user/admin",
"last_login": "2023-10-01 12:00:00"
}
]
```
## Installation
1. Klone das Repository.
2. Installiere die Abhängigkeiten:
```bash
pip install -r requirements.txt
```
3. Starte die Anwendung:
```bash
python app.py
```
## Lizenz
Dieses Projekt ist lizenziert unter der MIT-Lizenz.
## Datenbankstruktur
Die Datenbank enthält zwei Tabellen: `games` und `users`. Die `users`-Tabelle hat die folgenden Spalten:
- `id`: Eindeutige Benutzer-ID
- `username`: Eindeutiger Benutzername
- `password`: Passwort des Benutzers (verschlüsselt gespeichert)
- `role`: Rolle des Benutzers (user oder admin)
- `last_login`: Zeitstempel der letzten Anmeldung
## Standardbenutzer
Beim Erstellen der Datenbank wird ein Standardbenutzer mit dem Benutzernamen "admin" und dem Passwort "admin" erstellt. Das Passwort wird verschlüsselt gespeichert.