From f4156f1b94c53290ccd510b9d455eb6808c23abd Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Wed, 23 Dec 2020 21:42:58 +0100 Subject: [PATCH] Update API links, more detail on filtering Signed-off-by: Yohann D'ANELLO --- docs/api/index.rst | 65 ++++++++++++++++++++++++++++++---------------- docs/api/note.rst | 4 +-- 2 files changed, 44 insertions(+), 25 deletions(-) diff --git a/docs/api/index.rst b/docs/api/index.rst index 81834928..32068d88 100644 --- a/docs/api/index.rst +++ b/docs/api/index.rst @@ -22,28 +22,35 @@ Pages de l'API Il suffit d'ajouter le préfixe ``/api/`` pour arriver sur ces pages. -* ``models`` (liste des différents modèles enregistrés en base de données) -* ``user`` (liste des différents utilisateurs enregistrés) -* ``members/profile`` (liste des différents profils associés à des utilisateurs) -* ``members/club`` (liste des différents clubs enregistrés) -* ``members/role`` (liste des différents rôles au sein des clubs existant) -* ``members/membership`` (liste des adhésions enregistrées) -* ``activity/activity`` (liste des activités recensées) -* ``activity/type`` (liste des différents types d'activités : pots, soirées de club, ...) -* ``activity/guest`` (liste des personnes invitées lors d'une activité) -* ``activity/entry`` (liste des entrées effectuées lors des activités) -* ``note/note`` (liste des notes enregistrées) -* ``note/alias`` (liste des alias enregistrés) -* ``note/transaction/category`` (liste des différentes catégories de boutons : soft, alcool, ...) -* ``note/transaction/transaction`` (liste des transactions effectuées) -* ``note/transaction/template`` (liste des boutons enregistrés) -* ``treasury/invoice`` (liste des factures générées) -* ``treasury/product`` (liste des produits associés à des factures) -* ``treasury/remittance_type`` (liste des types de remises supportés : chèque) -* ``treasury/remittance`` (liste des différentes remises enregistrées) -* ``permission/permission`` (liste de toutes les permissions enregistrées) -* ``permission/roles`` (liste des permissions octroyées pour chacun des rôles) -* ``logs`` (liste des modifications enregistrées en base de données) +* `models `_ : liste des différents modèles enregistrés en base de données +* `user `_ : liste des différents utilisateurs enregistrés +* `members/profile `_ : liste des différents profils associés à des utilisateurs +* `members/club `_ : liste des différents clubs enregistrés +* `members/membership `_ : liste des adhésions enregistrées +* `activity/activity `_ : liste des activités recensées +* `activity/type `_ : liste des différents types d'activités : pots, soirées de club, ... +* `activity/guest `_ : liste des personnes invitées lors d'une activité +* `activity/entry `_ : liste des entrées effectuées lors des activités +* `note/note `_ : liste des notes enregistrées +* `note/alias `_ : liste des alias enregistrés +* `note/consumer `_ : liste des alias enregistrés avec leur note associée +* `note/transaction/category `_ : liste des différentes catégories de boutons : soft, alcool, ... +* `note/transaction/transaction `_ : liste des transactions effectuées +* `note/transaction/template `_ : liste des boutons enregistrés +* `treasury/invoice `_ : liste des factures générées +* `treasury/product `_ : liste des produits associés à des factures +* `treasury/remittance_type `_ : liste des types de remises supportés : chèque +* `treasury/remittance `_ : liste des différentes remises enregistrées +* `treasury/remittance `_ : liste des crédits de la Société générale enregistrés +* `permission/permission `_ : liste de toutes les permissions enregistrées +* `permission/roles `_ : liste des permissions octroyées pour chacun des rôles +* `logs `_ : liste des modifications enregistrées en base de données +* `wei/club `_ : liste des WEI +* `wei/bus `_ : liste des bus de tous les WEI +* `wei/team `_ : liste des équipes de tous les WEI +* `wei/role `_ : liste des rôles possibles pour le WEI +* `wei/registration `_ : liste de toutes les inscriptions à un WEI +* `wei/membership `_ : liste des adhésions compètes à un WEI Utilisation de l'API -------------------- @@ -92,7 +99,19 @@ objets trouvés, au format JSON. Certaines pages disposent de filtres, permettant de sélectionner les objets recherchés. Par exemple, il est possible de chercher une note d'un certain type matchant avec un certain alias. -Le résultat est déjà par défaut filtré : seuls les éléments que l'utilisateur à le droit de voir sont affichés. +Trois types de filtres sont implémentés : + +* Les filtres Django, permettant d'ajouter ``?key=value`` dans l'URL pour filtrer les objets ayant ``value`` comme + valeur pour la clé ``key`` ; +* Les filtres de recherche, permettant une recherche plus souple notamment par expressions régulières ou contenance, + et permet aussi de chercher parmi plusieurs clés à partir d'un champ ``search`` dans l'URL ; +* Les filtres de tri, qui ne filtrent pas réellement mais changent l'ordre. En ajoutant ``?ordering=key`` dans l'URL, + on trie les résultats selon la clé ``key`` dans l'ordre croissant, et ``?ordering=-key`` trie dans l'ordre + décroissant. + +Les filtres disponibles sont indiqués sur chacune des pages de documentation. + +Le résultat est déjà par défaut filtré par droits : seuls les éléments que l'utilisateur à le droit de voir sont affichés. Cela est possible grâce à la structure des permissions, générant justement des filtres de requêtes de base de données. Une requête à l'adresse ``/api//pk/`` affiche directement les informations du modèle demandé au format JSON. diff --git a/docs/api/note.rst b/docs/api/note.rst index 21d4c987..bba1d03d 100644 --- a/docs/api/note.rst +++ b/docs/api/note.rst @@ -132,8 +132,8 @@ Filtres de recherche * ``name`` (expression régulière) * ``note__polymorphic_ctype__model`` (expression régulière) -Alias ------ +Consommateur +------------ **Chemin :** `/api/note/consumer/ `_