Etat des Geoservices bêta look4
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 :
Code:
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' |
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 ?
Ceci serait permis par le schéma suivant :
Retrait de OneOf ; l'utilisation de l'attribut discriminator ne semble pas être nécessaire ici
Code:
1 2 3 4
|
schemas:
SearchGeom:
type: object |
Ajout de allOf
Code:
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' |
Construction de la requête
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 !