| URI | Opération | MIME | Requête | Réponse |
|---|---|---|---|---|
| /users/leaderboard | GET | <-application/json | liste des meilleurs utilisateurs (I1) | |
| /users/{id} | PUT | ->application/json <-application/json | Utilisateur (I2) | Utilisateur mis à jour (I3) |
| /users/{id} | PATCH | ->application/json <-application/json | Modification (I4) | Utilisateur mis à jour (I3) |
Le classement retourne une liste d’utilisateurs avec leurs points cumulés :
{
"login": "jonas.facon.etu@univ-lille.fr",
"points": 1250
}Lors d’une mise à jour complète (PUT) :
{
"login": "nouveau.login@univ-lille.fr",
"role": "ADMIN"
}La représentation complète d’un utilisateur inclut son identifiant :
{
"id": 1,
"login": "nouveau.login@univ-lille.fr",
"role": "ADMIN"
}Lors d’une mise à jour partielle (PATCH) :
{
"role": "ADMIN"
}GET /users/leaderboard
Requête vers le serveur :
GET /users/leaderboard?limit=2
Réponse du serveur :
[
{
"login": "jonas.facon.etu@univ-lille.fr",
"points": 1250
},
{
"login": "alice",
"points": 850
}
]Codes de status HTTP :
| Status | Description |
|---|---|
| 200 OK | La requête s’est effectuée correctement |
| 204 NO CONTENT | Aucun utilisateur trouvé |
| 400 BAD REQUEST | Paramètres de pagination invalides |
PATCH /users/{id}
Requête vers le serveur :
PATCH /users/1
{
"role": "ADMIN"
}
Réponse du serveur :
{
"id": 1,
"login": "ancien.login@univ-lille.fr",
"role": "ADMIN"
}Codes de status HTTP :
| Status | Description |
|---|---|
| 200 OK | La requête s’est effectuée correctement |
| 401 UNAUTHORIZED | Token manquant ou invalide |
| 403 FORBIDDEN | Droits insuffisants (Administrateur seulement) |
| 404 NOT FOUND | Utilisateur inexistant |