Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggestions pour la gestion automatique du versioning #538

Open
Chatewgne opened this issue Jan 13, 2022 · 3 comments
Open

Suggestions pour la gestion automatique du versioning #538

Chatewgne opened this issue Jan 13, 2022 · 3 comments
Labels
enhancement New feature or request

Comments

@Chatewgne
Copy link

Chatewgne commented Jan 13, 2022

Bonjour,

compte tenu de l'évolution continue de l'APIv2 sur Geotrek-Admin, et du développement parallèle de Geotrek-rando-v3, couplées à la possiblité d'activer ou non certaines modules côté Admin, il y a une grande complexité à suivre la compatibilité entre les différentes versions de l'une et de l'autre, avec quelles configurations etc. Cela devient gênant lors du déploiement de nouvelles instances et également lors des mises à jour.

On se demande si Rando v3 ne pourrait pas utiliser la page principale de l'APIv2 (https://demo-admin.geotrek.fr/api/v2/) pour connaître les endpoints accessibles sur l'Admin et ne faire que les requêtes dont les endpoints et les paramètres y sont bien listés.

On pourrait par exemple imaginer cela sous la forme d'une couche intermédiaire qui intercepte les requêtes et remplace la réponse par des données vides si cette requête n'est pas compatible avec l'Admin.

@Chatewgne Chatewgne added the enhancement New feature or request label Jan 13, 2022
@camillemonchicourt
Copy link
Member

Oui en effet.
Il y a parfois certaines fonctionnalités qui nécessitent une version minimum de Geotrek-admin pour fonctionner.

Pour le moment, on fait bien attention à l'indiquer dans le changelog, par exemple dans la version 3.5.0 :

To enable Outdoor module, Geotrek-admin version 2.70.0 or higher is required
To display images in Event module, Geotrek-admin version 2.72.0 or higher is required

Dans la version 3.0.0 :

Requires Geotrek-admin 2.57.0 minimun, reachable in https

Et quand on a ajouté des modules optionnels ou compatibles seulement avec des versions récentes, de prévoir un paramètre pour ne pas les activer, et ainsi ne pas bloquer les mises à jour de Geotrek-rando.

Mais en effet, on pourra aller plus loin en testant certaines routes ou certains champs, et si elles ne répondent ne pas activer certaines fonctionnalités, modules ou champs. A voir si c'est performant.

Sinon on avait aussi anticipé ce genre de problématique, en prévoyant une route dédiée renvoyée la version de l'API : https://demo-admin.geotrek.fr/api/v2/version

On pourrait interroger cette route pour activer ou non certaines modules, champs ou fonctionnalités de Geotrek-rando, en fonction de la version de Geotrek-admin, ça serait certainement plus simple et performant ?

@Chatewgne
Copy link
Author

Oui la route api/v2/version sera utile à exploiter, surtout dans un premier temps.

Les limites que j'y vois :

  • Connaître le numéro de version ne permet pas de savoir si certains modules sont activés dans l'Admin, par exemple pour l'Outdoor (alors que l'API va toujours répondre ou ne pas répondre)
  • Il faut quand même maintenir côté dev un tableau de correspondance entre la version de l'Admin et les fonctionnalités activables

D'où notre idée, que chaque fonctionnalité optionelle se demande d'elle même si elle a bien accès à son morceau d'API. Peut être plutôt dans une phase d'initialisation au démarrage de l'application, cela empacterait moins les performances...

@camillemonchicourt
Copy link
Member

Oui c'est comme ça que l'on créé les blocs "Randonnées", "Outdoor", "Services" et "Evenements" dans la page Recherche.
On interroge leurs routes et on affiche le bloc ou pas si la route renvoie au moins un contenu.
Normalement on met cette info en cache pour ne pas redemander ça à l'API à chaque fois qu'on ouvre la page Recherche, mais je pense que c'est optimisable car je trouve que c'est actuellement long à afficher ou non.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants