Projet

Général

Profil

Autre #11198

Alléger le développement de nouveaux connecteurs

Ajouté par Frédéric Péters il y a presque 8 ans. Mis à jour il y a environ 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
04 juin 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

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

Lié à Passerelle - Development #11199: ne pas devoir répéter les vues de management pour tous les templatesFermé04 juin 2016

Actions
Lié à Passerelle - Development #11200: Avoir une vue de connecteur génériqueFermé04 juin 2016

Actions
Lié à Passerelle - Development #11201: Pouvoir faire des connecteurs sans AppConfigFermé04 juin 2016

Actions
Lié à Passerelle - Development #11203: utiliser un template commun pour les vues "detail.html" de connecteurFermé05 juin 2016

Actions
Lié à Passerelle - Development #11204: Ne pas nécessiter de vue pour chaque endpointFermé05 juin 2016

Actions
Lié à Passerelle - Development #11206: diviser le template commun de vue de service en blocsFermé05 juin 2016

Actions

Historique

#1

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é
#2

Mis à jour par Frédéric Péters il y a presque 8 ans

#3

Mis à jour par Frédéric Péters il y a presque 8 ans

#4

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é
#5

Mis à jour par Frédéric Péters il y a presque 8 ans

#6

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é
#7

Mis à jour par Benjamin Dauvergne il y a presque 8 ans

Sur la forme tout est ok il me semble, sur le fond je synthétise mes remarques pous plus de déclaratif:
  • 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.

#8

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.

Formats disponibles : Atom PDF