MikaList/api.txt

161 lines
2.9 KiB
Plaintext

# API URL
https://mikaapi.fire-devils.org
# 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/<int:user_id>
- **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/<int:user_id>
- **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/<int:game_id>
- **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"
},
...
]
```