Projet

Général

Profil

Development #19877

ajout d'un connecteur GDEMA

Ajouté par Thomas Noël il y a plus de 6 ans. Mis à jour il y a presque 6 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
03 novembre 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Pour Strasbroug ; selon les specs attachées. On peut attendre la mise à dispo effective d'une instance de dev/test de leur côté avant de commencer.


Fichiers

REST - Publik - V1.0.pdf (1,44 Mo) REST - Publik - V1.0.pdf Thomas Noël, 15 novembre 2017 11:58
REST - Publik - V1.1.pdf (1,44 Mo) REST - Publik - V1.1.pdf Thomas Noël, 19 novembre 2017 14:59
0001-add-GDEMA-connector-19877.patch (24,5 ko) 0001-add-GDEMA-connector-19877.patch Thomas Noël, 21 novembre 2017 15:06
0001-add-GDEMA-connector-19877.patch (24,7 ko) 0001-add-GDEMA-connector-19877.patch Thomas Noël, 21 novembre 2017 17:23

Révisions associées

Révision 6b32426b (diff)
Ajouté par Thomas Noël il y a plus de 6 ans

add GDEMA connector (#19877)

Historique

#2

Mis à jour par Thomas Noël il y a plus de 6 ans

  • Assigné à mis à Thomas Noël
#3

Mis à jour par Thomas Noël il y a plus de 6 ans

  • Fichier GDEMA-REST-Publik-V1.0.pdf supprimé
#4

Mis à jour par Thomas Noël il y a plus de 6 ans

  • Fichier GDEMA-REST-Publik-V1.0.doc supprimé
#5

Mis à jour par Thomas Noël il y a plus de 6 ans

Nouvelle version de la doc, avec URL correcte pour le POST.

#7

Mis à jour par Thomas Noël il y a plus de 6 ans

Voici le code, testé, un pépin sur les fichiers attachés mais c'est côté gdema que le bogue sera corrigé (cf #18873 pour la discussion avec Strasbourg)

Les particularités :
  • le référentiel des typologies est en fait contenu dans celui des services, d'où la gestion spécifique de ces deux là
  • le format de date exotique /Date(<timestamp>+<tz>)/
    • en output, on le converti en datetime.datetime
    • en input, on traduit les champs nommés "*Date" dans ce format, avec les parse_datetime ou parse_date de Django
  • pour aider à la création depuis un appel wcs, j'ai fait en sorte qu'en input, on puisse recevoir un dictionnaire "à plat", dont des éléments seront transformés en dictionnaire ou liste de type GDEMA, selon deux notations :
    • Foo_Bar : va créer/updater un dictionnaire Foo avec une entrée Bar
    • Foo_2 : va créer une liste Foo et valoriser le 2ème élément
    • le format de fichier (utilisé en input seulement) est {Name: ..., Base64Stream: ...} : on transforme les item au format JSON de wcs (dict avec filename et content) dans ce format
#8

Mis à jour par Thomas Noël il y a plus de 6 ans

  • Statut changé de Nouveau à En cours
#9

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

  • manque un commentaire pour dire ce que c'est et à quoi ça sert (c'est dommage qu'on ait pas ça sur les BaseRessource, on a la description de chaque endpoint mais du connecteur dans son ensemble),
  • virer GDEMAError qui n'est utilisé qu'une fois, APIError suffit,
  • dans get_services() c'est pas plus cher d'instancier un nouveau dico et de copier les bonnes clés, del ... c'est moche et ça ressemblera à get_typologies(0 comme cela.

Ack sinon.

#10

Mis à jour par Thomas Noël il y a plus de 6 ans

Benjamin Dauvergne a écrit :

  • manque un commentaire pour dire ce que c'est et à quoi ça sert (c'est dommage qu'on ait pas ça sur les BaseRessource, on a la description de chaque endpoint mais du connecteur dans son ensemble),

J'ai complété le verbose_name (qui précise donc que c'est du spécifique Strasbourg) et ajouté des description sur les endpoints.

  • virer GDEMAError qui n'est utilisé qu'une fois, APIError suffit,

Yep.

  • dans get_services() c'est pas plus cher d'instancier un nouveau dico et de copier les bonnes clés, del ... c'est moche et ça ressemblera à get_typologies(0 comme cela.

En fait les services renvoyés par GDEMA contiennent des trucs en plus de id et label, qui ne sont pas tous documentés (AdminService, CommuneService, ...). Donc je préfère les conserver "tel quels" au cas où on se rende compte que c'est utile, et surtout au cas où ça bouge.

#11

Mis à jour par Thomas Noël il y a plus de 6 ans

  • Statut changé de En cours à Résolu (à déployer)
commit 6b32426b618bd5855db1608abb3beb1fd75a5b3a (HEAD -> master, origin/master, origin/HEAD)
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Mon Nov 20 01:58:56 2017 +0100

    add GDEMA connector (#19877)

#12

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

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF