demarches-simplifiees / demarches-simplifiees.fr

Dématérialiser et simplifier les démarches administratives
https://www.demarches-simplifiees.fr
GNU Affero General Public License v3.0
190 stars 89 forks source link

ETQ Développeur, je veux pouvoir identifier correctement les champs des dossiers reçus par api #7679

Open apibrac opened 2 years ago

apibrac commented 2 years ago

Lorsque j'utilise l'api (graphql) pour récupérer et traiter automatiquement les dossiers de mes démarches, je ne peux pas identifier correctement les différents champs que je reçois. Seuls l'id et le label du champ sont disponibles :

Screenshot 2022-08-21 at 14 12 13

L'id n'est pas utilisable car :

Le label n'est pas utilisable facilement car :


Proposition de solution : Ajouter un label technique à tout mes champs, pouvoir le régler lorsque je créé mon formulaire, et le retrouver dans l'api pour pouvoir identifier chaque champ selon ce label. Cela me permet d'utiliser le même dans mes différentes démarches quasi identiques, pour que le même code les traite. Inspiration : le "name" des différents champs d'un formulaire html, qui permet au javascript ou à l'api qui reçoit les valeurs d'identifier chaque champ sans se soucier du label pour l'humain (son langage, sa complexité, son intention).

Proposition complémentaire : Pour simplifier son introduction, je propose qu'il reçoive le minimum de contrainte possible :

(j'en avais discuté rapidement avec certains dev demarches-simplifiees lorsqu'ils étaient venu voir l'équipe pass Culture, et nous avait suggéré de le faire nous, je veux bien faire une PR ! à dispo si besoin de plus d'info ou d'en discuter)

tchak commented 2 years ago

Merci pour cette issue. Je comprends bien le problème. Nous allons en parler avec l'équipe.

Ce qui m'embête le plus c'est un problème d'UI. Si on ajoute le champ "nom" dans l'éditeur de champs ça va créer énormément de confusion – beaucoup d'administrateurs qui utilisent DS ne sont pas "techniques" et leur exposer une options de config qui n'est utile que pour l'API c'est non. Je suis en train de penser qu'on pourrait ajouter une mutation qui permettrait d'assigner un nom technique aux champs via l'API. C'est un peu moins pratique pour le développeur, mais au moins on reste dans le domaine de l'API.

apibrac commented 2 years ago

Merci pour ta réponse @tchak !

Effectivement le rendre modifiable via l'api est une solution, ça rendrait le champ très caché. On pourrait alors lui donner un nom très explicite comme quoi c'est un nom uniquement technique. L'inconvénient est qu'une fonctionnalité très cachée est peu utilisée...

Pour aller plus loin, il pourrait même y avoir une api pour créer des formulaires, ce qui nous permettrait (côté développeur) de coder chez nous la structure de ce formulaire et de créer ou modifier les formulaires automatiquement. Ainsi en répétant la même création dans les différents environnements on s'assurerait d'avoir des formulaires consistants.

Je te propose deux autres solutions pour rendre ce champ intelligible, si ça peut alimenter ta réflexion :

tchak commented 2 years ago

@apibrac on peut s'organiser un call ? Tu es sur Mattermost de betagouv ou pas du tout ? Tu peux m'envoyer un email le cas échéant ?