Geotrek-admin
Geotrek-admin copied to clipboard
API v2 / Harmoniser la sérialisation des types
Actuellement, les types ou catégories de données remontent dans l'API de manière disparate :
information_desk
:
"id" : 1,
"type": {
"id": 3,
"label": {
"fr": "Office du tourisme",
"en": null,
"es": null,
"it": null
},
"pictogram": "https://admin48-dev.openig.org/media/upload/desktype-info.svg"
}
trekking_poi
:
"id" : 1,
"type": 8,
"type_label": {
"fr": "Eau et géologie",
"en": "Geology",
"es": null,
"it": null
},
"type_pictogram": "https://admin48-dev.openig.org/media/upload/EAU_et_GEOLOGIE_1.svg"
outdoor_course
:
"id" : 1,
"type" : 4
(aucune information de label
ou name
ne remonte pour le type des outdoor_course
)
La structure de informationdesk
me semble la plus intéressante, notamment car elle utilise un "sous-objet" (je ne sais pas quel est le terme) issu lui-même de l'API :
En conjonction avec la proposition du ticket #3006, cela permettrait un traitement automatisé des résultats de l'API beaucoup plus simple et moins sujet aux erreurs.
OK là aussi ça serait bien d'harmoniser aussi. Mais comme l'API est utilisée par Geotrek-rando-v3 mais aussi des plateformes tiers, de tels changements ne seraient pas rétro-compatibles et nécessiterait une v3 de l'API il me semble.
Il y a aussi une incohérence dans les valeurs qui sont renvoyées pour "structure", parfois on renvoie le nom, parfois l'id
Sur /trek/
, /touristiccontent/
, /touristicevent/
, /outdoor_site/
, /outdoor_course/
:
"structure" : 4,
Sur /service/
, /infrastructure/
, /signage/
, /sensitivearea/
"structure" : "CD04",
- Préfère-t-on utiliser le nom ou l'id ?
- Peut-on homogénéiser sans risque ou cela représente-il un gros breaking change ?
Ce qu'on utilise actuellement est le paramètre de filtre par structure des différents routes qui fonctionne partout avec un ID. concernant l'info de structure qui est retournée sur chaque objet, on ne l'utilise pas à ma connaissance.
Merci pour ton retour @camillemonchicourt , je pense plutôt changer pour que l'ID remonte partout, c'est plus homogène avec le reste
Oui je pencherai aussi pour cette homogénéisation avec les ID. Elle est discutable plus globalement, mais comme c'est qu'on fait quasiment partout, autant rester sur ça, et revoir globalement si on décide de ne plus faire avec des ID et jointures.
Fait dans la version 2.105.0 pour la propriété "structure" dans les différentes routes de l'API dans la PR https://github.com/GeotrekCE/Geotrek-admin/pull/4078, en renvoyant toujours les ID des structures.