VNG-Realisatie / api-beheer

Repository met beschrijving van het beheer van (ZGW) API specificaties
2 stars 0 forks source link
api-specification

API-Beheer

Build Status Repo Status

Doel

Deze repository bevat alles wat nodig is om de GEMMA ZDS 2.0 Open API standaard in beheer te kunnen nemen en om dat beheer goed uit te kunnen voeren.

Nog te beantwoorden vragen:

  • Blijkbaar kun je standaarden clusteren. Moeten we daarvoor in GEMMA Online voorzieningen treffen?

Het dient daarnaast tevens als aanzet om te komen tot een generieke methode voor het in beheer nemen en uitvoeren van dat beheer van andere (nog te ontwikkelen) Open API standaarden. De inhoud van deze repository zal op een later moment mogelijk worden opgenomen in een repository waarin het beheer van Open API standaarden of van standaarden in het algemeen worden beschreven.

Visie API-Beheer

Het beheer van Open API standaarden waarborgt de ondersteuning van de standaard nadat deze is ontwikkeld. Voor een Open API standaard die in beheer is betreft dat het beantwoorden van vragen, het vastleggen van problemen met de standaard, het oplossen van kleine problemen, het opnieuw beschikbaar stellen van alle componenten van de door beheer aangepaste standaard, het doorontwikkelen van de standaard, etc...

Bij het beheer van een Open API standaard onderkennen we 2 fases en elke fase kent een aantal aspecten:

Nog te beantwoorden vragen:

  • Is bij de overdracht het door de leveranciers en gemeenten te gebruiken kanaal al ingericht?

Enkele aspecten die van belang zijn bij het beheer van een standaard spelen ook al een rol bij de ontwikkeling van een standaard. Denk daarbij aan:

Aangezien je deze aspecten niet bij de in beheername opnieuw wil inrichten moet dit bij de start van de ontwikkeling van een nieuwe standaard al meteen zo worden gedaan dat zowel ontwikkelaars als beheerders er mee uit de voeten kunnen.

Beheer en standaard creatie methodiek

Er zijn 2 methodieken die in projecten gebruikt kunnen worden bij het vervaardigen van API standaarden.

De eerste methode gaat uit van een (nagenoeg) blanco domeinmodel. Het domeinmodel (het model waarin duidelijkheid wordt geschept over de te gebruiken entiteiten, de daarbinnen benodigde attributen en de relaties tussen de entiteiten) moet dus nog helemaal opgebouwd worden. Aangezien we in snel op elkaar volgende sprints de nieuwe standaard willen ontwikkelen wordt er niet voor gekozen eerst een informatiemodel te ontwikkelen en daarna pas de andere benodigde componenten. Alle componenten worden tegelijkertijd ontwikkelt waardoor de mate van volwassenheid van de componenten en dus de standaard in de tijd langzamerhand toeneemt. Het OAS3 bestand wordt in dit geval gegenereerd uit de Referentie Implementatie waardoor beide in sync blijven.

De tweede methode gaat uit van een MDD aanpak. Op basis van een of meer bestaande informatiemodellen wordt een Bericht Structuurmodel vervaardigd en wordt van daaruit het OAS3 bestand gegenereerd m.b.v. specialistische tooling. Het gegenereerde OAS3 bestand is de basis voor code generatie waardoor ook in dit geval geldt dat de code in sync is met het OAS3 bestand. Ook in dit geval wordt echter niet gewacht totdat de het Bericht Structuurmodel helemaal gereed is. Nee, tussentijdse resultaten van dit proces kunnen al heel goed dienen als basis voor codegeneratie.

Welke methode door een project wordt gehanteerd wordt binnen het project beslist en hangt bijv. af van de vraag of er al een (domein)model aanwezig is. Beide methodieken kennen elk hun eigen voordelen.

Het bestaan van 2 verschillende methodieken voor het vervaardigen van API standaarden betekent natuurlijk wat voor het beheer van deze standaarden. Als beheer hebben we er belang bij om het beheerproces zo uniform mogelijk in te richten.

Nog aan te vullen

Vragen en bijdragen

Lees meer over hoe je vragen kunt stellen, bugs kunt melden en bij kunt dragen (met code of documentatie) in CONTRIBUTING.md (EN).

Documentatie

...

Rollen