Bonjour,
J'ai tenté d'utiliser la nouvelle version des géoservices IGN look4 exposant une doc Swagger.
Je n'ai pour l'instant pu essayer que le reverse geocoding, mais sans succès ; je rencontre notamment les problèmes suivants :
Génération de code Java à partir du swagger.yaml
J'utilise swagger-codegen-maven-plugin en version 3.0.19, compatible openAPI 3, afin de générer les modèles et services permettant d'appeler les endpoints exposés par Swagger.
Il y a déjà un premier souci avec l'attribut interne _type de la classe PoiProperties, dont les getters/setters générés font doublons avec l'attribut type (sans underscore), cet attribut est peut-être à exclure de la génération ?
De plus, le swagger.yaml semble présenter un problème d'héritage, exemple avec l'objet SearchGeom :
Ce code a pour effet de générer 5 POJO (les 4 géométries + SearchGeom) qui implémentent OneOfSearchGeom. La structure attendue serait plutôt d'avoir les 4 géométries qui étendraient SearchGeom ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SearchGeom: type: object oneOf: - $ref: '#/components/schemas/GeometryPoint' - $ref: '#/components/schemas/GeometryLineString' - $ref: '#/components/schemas/GeometryPolygon' - $ref: '#/components/schemas/GeometryCircle'
Ceci serait permis par le schéma suivant :
Retrait de OneOf ; l'utilisation de l'attribut discriminator ne semble pas être nécessaire ici
Ajout de allOf
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 schemas: SearchGeom: type: object
Construction de la requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 GeometryPoint: type: object properties: type: type: string enum: - Point coordinates: type: array items: type: number example: type: Point coordinates: - 2.03648539635326 - 44.3492508045369 allOf: - $ref: '#/components/schemas/SearchGeom'
Même en corrigeant les erreurs ci-dessus, la requête ne se construit pas correctement et tente de sérialiser la classe objet SearchGeom :
https://geocodage.ign.fr/look4//addr...Geometry=false
Y-a-t-il des examples d'utilisation d'un client, Java ou non, généré à l'aide de ces services ? J'ai bien conscience qu'ils sont en version bêta et je ne sais donc pas s'il est possible de les utiliser d'ores et déjà de cette manière.
Merci !
Partager