Project

General

Profile

Développement #41414

opengis: rendre « couche de requête » optionnel dans le paramétrage du connecteur

Added by Valentin Deniaud over 4 years ago. Updated over 4 years ago.

Status:
Fermé
Priority:
Normal
Target version:
-
Start date:
07 April 2020
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

De #20535, où on veut utiliser le connecteur pour plusieurs couches différentes, donc pas envie de le définir globalement.

Deux problèmes :
  • La dénomination. « Layer » veut dire quelque chose en WMS mais pas en WFS, où on parle de type. En pratique, il semble y avoir une forte correspondance entre les deux lorsqu'un serveur implémente les deux services, ie un si un layer en wms et un feature type en wfs ont les mêmes noms, il désigneront les mêmes objets. C'est sûrement ce qui a conduit l'endpoint reverse à utiliser query_layer comme type wfs. Une seule solution, la documentation.
  • La cohérence entre les endpoints. Tous utilisent le paramètre globalement défini, et ne permettent pas de le modifier, à l'exception de l'endpoint features, qui à l'inverse ne l'utilise pas et oblige à spécifier un type à chaque requête. Pour homogénéiser tout ça je propose de permettre de le passer partout de manière optionnelle, et d'utiliser le paramètre global par défaut.

Files

Associated revisions

Revision 6d5356f8 (diff)
Added by Valentin Deniaud over 4 years ago

opengis: make query_layer config parameter optional (#41414)

History

#1

Updated by Valentin Deniaud over 4 years ago

Et j'ajouterai quelques tests si on me dit que c'est ok comme approche.

#2

Updated by Frédéric Péters over 4 years ago

Sur la modification,

    def tile(self, request, zoom, tile_x, tile_y, query_layer=None):

la forme d'URL attendue ici est précise; il faudrait alors réécrire '(?P<zoom>\d+)/(?P<tile_x>\d+)/(?P<tile_y>\d+).png' pour permettre au début query_layer.

#3

Updated by Valentin Deniaud over 4 years ago

Je trouve bien plus clair/joli un appel du type /opengis/tile/1/2/3.png?query_layer=hop que /opengis/tile?query_layer=hop/1/2/3.png, si c'est ce que tu suggères. Bonus, ça marche déjà (pas de $ final dans la regex).
(et niveau syntaxe la deuxième option n'a même pas l'air très valide)

#4

Updated by Frédéric Péters over 4 years ago

Ce n'est pas ce que je suggère. Je suggère .../$layer/1/2/3.png; parce que ça doit être dans le chemin pour leaflet.

#5

Updated by Valentin Deniaud over 4 years ago

Oui d'accord je n'avais pas en tête ce prérequis. Mais ça risque de faire un pattern trop bizarre et il faudra du code pour que ce soit documenté automatiquement de manière intelligible. Je préfère ne pas mettre le paramètre et lever un APIError si il n'est pas renseigné au niveau du connecteur.

Après, à tester Leaflet n'est pas le moins du monde perturbé par un ? après le .png (https://jsfiddle.net/6rudows0/) et il y a même un exemple construit un peu comme ça dans les sources (https://github.com/Leaflet/Leaflet/blob/37d2fd15ad6518c254fae3e033177e96c48b5012/src/layer/tile/TileLayer.js#L17). Donc pas de problème ?

#6

Updated by Frédéric Péters over 4 years ago

Donc pas de problème ?

Possible, je n'ai pas fait des tests voir comment ça se comportait; mais oui à défaut de ces tests juste faire APIError si ce n'est pas spécifié au niveau du connecteur ça me va.

#7

Updated by Frédéric Péters over 4 years ago

  • Status changed from Solution proposée to Solution validée

Ou go ainsi et on verra bien si jamais on se trouve à rencontrer ça un jour pour des tuiles.

#8

Updated by Valentin Deniaud over 4 years ago

Frédéric Péters a écrit :

je n'ai pas fait des tests voir comment ça se comportait; mais oui à défaut de ces tests

J'ai refait des tests en local et pour moi ça marche, je pousse comme ça.

#9

Updated by Valentin Deniaud over 4 years ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 6d5356f895d06a01fed11b56df96cad88adaf46e
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Apr 7 11:37:25 2020 +0200

    opengis: make query_layer config parameter optional (#41414)
#10

Updated by Frédéric Péters over 4 years ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF