maykinmedia / objects-api

API and admin interface to manage Objects of certain Objecttypes. An object can be anything whether its a monument, report, tree or a permit.
https://opengem.nl/producten/overige-registraties/
Other
7 stars 10 forks source link

Als developer van een eindapplicatie (bijvoorbeeld in Java en Mendix) is het dynamisch gedrag in veldtypen ongewenst #302

Open RvdKlip opened 2 years ago

RvdKlip commented 2 years ago

Toelichting Sommige delen van de REST berichten zijn dynamisch. Dit houdt in dat het eerste veld een type specificeert en dat type bepaald welke velden er volgen. Voorbeeld is geometrie. Het type is onder andere POINT en POLYGON. De volgende velden in het bericht zijn anders per type: Array van 2D punten of een Array van een Array van 2D punten.

In de Objecten catalogus wordt beschreven welke attributen en van welk type er allemaal aanwezig zijn op een Object type. Bijvoorbeeld Boom Diameter. Vooraf worden mappings gemaakt hoe de velden naar attributen in entiteiten (Mendix) of klassen (Java) mappen. In Mendix en Java is het niet mogelijk om dynamische mappings te maken. Dus hoe moeten we hiermee omgaan?

joeribekker commented 2 years ago

Als je met dynamisch gedrag doelt op GeoJSON (wat inderdaad een polymorphe opzet heeft) dan wordt dat enkel gebruikt in het vaste "geometrie" attribuut. Dit is niet anders dan in ZGW API's of in StUF-ZDS waar geometrie wordt opgeslagen. Java kan hier zeker weten mee omgaan, want de alle typen zijn van te voren bekend en zijn vastgelegd in de Open API specificatie (in het geval van geometrie als vast attribuut) of in het Objecttype (in het geval van attributen die daar zijn vastgelegd).

Attributen veranderen in ieder geval NOOIT zomaar van type. Dit kan enkel gebeuren in een nieuwe versie van het Objecttype.

Tevens heeft Java gewoon JSON en GeoJSON ondersteuning: http://docs.geotools.org/latest/javadocs/org/geotools/geojson/geom/GeometryJSON.html

Wat is hier de vraag achter de vraag?