Introductie Objecten API
De Objecten API ( Github: https://github.com/maykinmedia/objects-api ) is ontwikkeld door Maykin in samenspraak met de gemeente Utrecht. Het biedt een gestandaardiseerde interface voor het opvragen en opslaan van objectinformatie. De Objecten API is een component dat zowel kan dienen als ‘middleware’ en als bronopslag voor gegevens waar nog geen bron voor beschikbaar is. Het wordt ook wel ‘Overig Object Registraties' of het 'Overige Registratie Component’ genoemd.
Wat een object is en hoe een organisatie de Objecten API inzet kan heel divers zijn: een object kan van alles zijn, van lantaarnpaal tot monument, en van zaakdossier tot terugbelverzoek. De Objecten API fungeert als knooppunt voor informatieopslag en -uitwisseling waarbij desgewenst meerdere applicaties kunnen inhaken op dezelfde soorten objecten.
De Objecten API is geen volwaardig assetmanagementsysteem. Het heeft naast een beheeromgeving geen eenvoudige gebruiksinterface waarmee men objecten eenvoudig kan inzien of kan wijzigen. Hier hopen wij in de toekomst met Open Objecten verandering in te brengen.
Objecten en Objecttypen
De Objecten API begon als zijproject naast Open Zaak voor ontwikkelaars om om te kunnen gaan met objecten die niet met de ZGW API's konden worden gemodelleerd. Als voorbeeld nemen we het aanvragen van een vergunning voor een dakkapel: In Open Zaak kan de vergunningsaanvraag geregistreerd, intern doorgezet en afgehandeld worden, maar er kan in Open Zaak geen object ‘Dakkapel’ worden opgesteld wat na afronding van de bouw kan worden opgevraagd.
De Objecten API voorziet exact in deze behoefte. Met de Objecten API kan de gemeente bijvoorbeeld eenvoudig opvragen waar de ‘Dakkapel’ objecten binnen een bepaald gebied staan, welke afmetingen ze hebben en wanneer ze zijn gebouwd.
Echter waar een vaste API alleen voor 1 type objecten (zoals dakkapellen) geschikt is, hebben we met de Objecten API een flexibele oplossing gerealiseerd, waarmee de gemeente zelf bepaalt welke soorten objecten kunnen worden geregisteerd en hoe deze objecten vormgegeven dienen te worden. Dit noemen we ‘objecttypen’. Een objecttype beschrijft hoe een object eruit zal zien (dus welke velden en attributen er in het object zullen zitten). Bij het opslaan van een object moet worden voldaan aan de specificatie van het soort object.
Geoinformatie
We hebben bij de Objecten API extra aandacht besteed aan het werken met geoinformatie. Waar voor de specificatie van het object het de beheerder van de objecten vrijstaat velden en attributen te kiezen voor in de ‘data’ attribuut, is er voor de geoinformatie een apart ‘geometry’ attribuut per object beschikbaar.
Door deze gegevens naast elkaar te zetten zijn de locaties van objecten, ongeacht het soort object, altijd op dezelfde wijze te bevragen. Hierdoor is het mogelijk om ondanks de flexibiliteit wél alle soorten objecten te projecteren op een kaart of om te zoeken op objecten binnen een bepaalde regio
Versiebeheer & Notificaties
Een ander belangrijk aspect van de Objecten API is het ingebouwde versiebeheer. Ieder object heeft een geschiedenis die opvraagbaar is, waardoor een applicatie ervoor kan kiezen om niet alleen de huidige versie van het object te tonen, maar ook wanneer er door wie welke wijzigingen gemaakt zijn.
Andere applicaties die geïnteresseerd zijn in het direct acteren op wijzigingen aan objecten, kunnen door middel van de ingebouwde notificaties in combinatie met Open Notificaties real-time een bericht krijgen. Stel dat een dakkapel bijvoorbeeld toch niet is gebouwd, dan kan een zaakapplicatie die het object volgt daar direct op inspelen door een lopende zaak stop te zetten.
Maykin en de Objecten API
Maykin biedt via opengem.nl de Objecten/Objecttypen API's aan als SaaS: https://opengem.nl/producten/overige-registraties/
Tevens zijn beide API's open source beschikbaar via Github en Docker Hub: https://github.com/maykinmedia/objects-api en https://github.com/maykinmedia/objecttypes-api
Open Objecten
We merken dat de Objecten API voor allerlei toepassingen ingezet wordt, maar dat het met name een technisch component is dat in een technische behoefte voorziet en waar gemeentes zelf weinig aan hebben. Om ook in een functionele behoefte van gemeentes te voorzien ("Een webomgeving waarmee ik als gemeente dakkapellen kan inzien en wijzigingen kan invoeren") zijn wij concepten aan het ontwerpen om een eenvoudige gebruiksinterface op beide API's te realiseren.
Dit project noemen wij ‘Open Objecten’. Voor Open Objecten is een prototype en een ontwerp door ons gerealiseerd en wij zoeken momenteel (Q1 2023) naar geïntereseerde gemeentes om dit prototype samen uit te bouwen naar een volwaardig component voor binnen het Common Ground landschap.
Maykin & het Open Inwoner Platform Maykin & Gem, de Virtuele (Gemeente) Assistent