Skip to content

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és
  • allowed_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

  1. Recherche du GDR par son acronyme
  2. Récupération de tous les GT du GDR

Filtrage par GT

  1. 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