Constat
Dans plusieurs applications que je développe, dès lors qu’il s’agit de traiter des infractions, je suis confronté à la gestion de ce qu’on appelle les “NATINF”, à savoir les “Natures d’Infraction”. Afin de ne pas répéter le code, il fallait disposer d’un composant réutilisable sans adhérence à une base de données.
Problématique
La première problématique est que je ne souhatais pas devoir administrer une base des NATINF. C’est le genre de donnée qui doit être administrée par l’organisme en charge de la donnée, en l’occurrence ce qui est fait ici: data.gouv.fr - NATINF
L’inconvenient est qu’il n’existe pas d’API sur le site officiel.
Solution
Qu’à cela ne tienne, la DINUM a mis en place une API tabulaire qui permet, selon certains critères, d’accéder à des données de data.gouv.fr par requête API.
C’est donc par ce biais que j’ai choisi de requêter les NATINF à partir de mon composant.
Mise en oeuvre
Ma pile technique de prédilection du moment étant Vue, et dans la mesure où Vuetify est un excellent choix lorsqu’il s’agit de concevoir des interfaces ergonomiques, j’ai opté pour Vuetify.
Le client Vuetify consomme l’API tabulaire évoquée supra pour récupérer les données qui correspondent à ce qui est recherché. Il est donc possible de rechercher des NATINFs (composant de recherche), et il est également possible de les afficher sous différents formats (composants d’affichage).
Difficultés
Il reste cependant plusieurs sujets:
- la gestion des versions n’est pas conforme aux standards, ce qui oblige à modifier le code à chaque mise à jour, cf. la discussion ici
- les en-têtes des fichiers ne sont pas correctes, cf. l’autre discussion ici
J’ai donc déplacé l’adhérence à la gestion d’une base de données à l’adhérence à un système de gestion de version perfectible, mais j’imagine que les personnes en charge de la donnée au Ministère de la Justice œuvreront pour mettre leurs données en conformité avec l’état de l’art en résolvant les deux discussions.
Enrichissements
Ce projet m’a permis de découvrir l’API tabulaire de la DINUM, qui présente un potentiel assez énorme au regard de toutes les données qui figurent sur data.gouv.fr.
J’ai également pu mettre à disposition pour la première fois au public un composant que j’ai réalisé pour mes projets personnels, dans une version édulcorée pour le public. Il est possible que j’inverse mon fonctionnement à l’avenir en commençant par développer quelque chose en source ouverte pour ensuite l’utiliser dans mes projets.