Endpoint API – Utilisateurs (liste et informations)
Profil API requis
Chaque utilisateur non admin doit posséder un profil API (APIUserProfile) contenant :
allowed_gts: liste des GT autorisésallowed_gdrs: liste des GDR autorisés
Sans ce profil, tout accès est refusé.
1. Liste des utilisateurs
URL
GET /api/users/
Authentification
- Basic Authentication
- Accès réservé aux administrateurs et aux profils API.
Paramètres de filtrage
| Paramètre | Type | Description |
|---|---|---|
gdr_acro |
string | Filtre les utilisateurs d’un GDR |
gt_acro |
string | Filtre les utilisateurs d’un GT |
📌 Les deux filtres peuvent être utilisés séparément.
Exemples d’appels
GET https://mygdr.hosted.lip6.fr/api/users/?gdr_acro=RADIA
GET https://mygdr.hosted.lip6.fr/api/users/?gt_acro=MAFTEC
Description fonctionnelle
L’endpoint retourne la liste complète des utilisateurs enrichis avec :
- Les GTs
- Les GDRs
- Les laboratoires
- Les statuts
- Les informations personnelles
- L’employeur
Codes de réponse
| Code | Description |
|---|---|
| 200 | Liste retournée avec succès |
| 404 | GDR ou GT inexistant |
| 401 | Non authentifié |
| 403 | Non autorisé |
2. Détail d’un utilisateur
URL
GET https://mygdr.hosted.lip6.fr/api/users/<id>/
Description
Retourne toutes les informations enrichies d’un utilisateur unique.
Exemple
GET https://mygdr.hosted.lip6.fr/api/users/42/
3. Logique interne de filtrage
Filtrage par GDR
- Recherche du GDR par son acronyme
- Récupération de tous les GT du GDR
Filtrage par GT
- Recherche du GT par son acronyme
Parfait, j’ajoute maintenant la documentation de la réponse API basée sur ton UserSerializer, prête à être intégrée dans MkDocs.
Tu peux insérer cette section dans la page de l’endpoint /api/users/ que je t’ai rédigée précédemment.
Format de la réponse:
La réponse de l’API est construite à partir du serializer.
Chaque utilisateur est retourné sous la forme d’un objet JSON compact, avec toutes les informations agrégées dans un seul dictionnaire.
Structure complète d’un utilisateur
| Champ | Type | Description |
|---|---|---|
id |
integer | Identifiant unique Django |
username |
string | Nom d’utilisateur |
first_name |
string | Prénom |
last_name |
string | Nom |
email |
string (email) | Adresse email |
employeur |
string | null |
gts |
array[string] | Liste des acronymes GT |
labos |
array[string] | Liste des acronymes de laboratoires |
statuts |
array[string] | Liste des acronymes de statuts |
genre |
string | null |
siteweb |
string | null |
Exemple de réponse complète
[
{
"id": 12,
"username": "jdupont",
"first_name": "Jean",
"last_name": "Dupont",
"email": "jean.dupont@univ.fr",
"employeur": "Université d'Orléans",
"gts": [
"MAFTEC",
"Animation_générale"
],
"labos": [
"CRIL"
],
"statuts": [
"MCF"
],
"genre": "Homme",
"siteweb": "https://jeandupont.fr"
}
]
4. Swagger / OpenAPI
L’endpoint est documenté automatiquement dans Swagger:
https://mygdr.hosted.lip6.fr/swagger