Autre #11198
Alléger le développement de nouveaux connecteurs
0%
Description
Aujourd'hui, même pour un truc très bête, il y a ~200 lignes de Python et ~100 lignes de templates. (info tirée de mon connecteur "SIG" pour la ville de Liège).
300 lignes, à comparer aux 30 lignes "utiles", c'est 90% de surplus, de "lourdeurs".
Demandes liées
Historique
Mis à jour par Frédéric Péters il y a presque 8 ans
- Lié à Development #11199: ne pas devoir répéter les vues de management pour tous les templates ajouté
Mis à jour par Frédéric Péters il y a presque 8 ans
- Lié à Development #11200: Avoir une vue de connecteur générique ajouté
Mis à jour par Frédéric Péters il y a presque 8 ans
- Lié à Development #11201: Pouvoir faire des connecteurs sans AppConfig ajouté
Mis à jour par Frédéric Péters il y a presque 8 ans
- Lié à Development #11203: utiliser un template commun pour les vues "detail.html" de connecteur ajouté
Mis à jour par Frédéric Péters il y a presque 8 ans
- Lié à Development #11204: Ne pas nécessiter de vue pour chaque endpoint ajouté
Mis à jour par Frédéric Péters il y a presque 8 ans
- Lié à Development #11206: diviser le template commun de vue de service en blocs ajouté
Mis à jour par Benjamin Dauvergne il y a presque 8 ans
- avoir un endpoint_info.name, endpoint_info.label, endpoint_info.description et endpoint_info.example_query (pour générer automatiquement la liste des endpoints dans DetailView) ;
- passer le kwargs
connector
dans la vue de détail pour éviter d'avoir un connector='<connector>' dans les templates quand on utlise l'URL générique.
Encore plus avant j'essaierai de d'obtenir des tests déclaratifs, avec les vues génériques on peut déjà avoir automatiquement un test instantiation/suppression sur chaque connecteur automatiquement (pas vraiment utile mais ça donne le canevas pour aller plus loin) on pourrait ensuite déclarer dans tests/test_generic.py une matrice de tests (c'est juste une idée):
GENERIC_ENDPOINTS_TESTS = { 'base_adresse': { <- connector 'search: { <- endpoint 'input': { 'qs: { 'q': 'rue des tilleuls', 'format': 'json'}, 'json': { ... }, }, 'output': { je ne sais pas quoi pour générer des assert, des requêtes jsonpath ? des regexps ? des lambda ? là on peut être créatif }, 'http_mock': { 'http://ban.gouv.fr/....': { 'body': '...', }, 'soap_mock': { ... }, } }
Si on arrive à quelque chose comme ça on devrait pouvoir développer un connecteur en 40 lignes tests compris comme tu le souhaites.
Mis à jour par Frédéric Péters il y a environ 7 ans
- Statut changé de Nouveau à Fermé
On va dire que c'est ok et créer des nouveaux tickets pour de nouveaux points.