API-standaarden: verschil tussen versies

Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
 
(52 tussenliggende versies door 3 gebruikers niet weergegeven)
Regel 1: Regel 1:
{{Cocreatie
Het wordt steeds belangrijker voor (applicatie)componenten om onderling goed samen te werken. Om dit mogelijk te maken kennen componenten (applicatie)services die voor andere componenten toegankelijk zijn via zogenaamde 'Application Programming Interfaces' (API's). Zo kunnen componenten op een gestructureerde manier functionaliteit van andere componenten gebruiken. Bijvoorbeeld door een API aan te bieden die voor andere componenten bruikbaar is om gegevens uit een achterliggende bronregistratie te gebruiken.
|Cocreatiepublicatie=Cocreatie
|GEMMAOnlinebeheerder=Beheerder Standaarden,
}}
[[Categorie:Berichtenstandaarden]]
__NOTOC__
VNG Realisatie beheert een groot deel van de gemeentelijke standaarden voor gegevens- en berichtenverkeer. Verschillende ontwikkelingen, zoals het digitaliseren van zaakgerichte processen, de Omgevingswet, nieuwe BRP, BGT en BRK, maken het vernieuwen van standaarden noodzakelijk. Ondertussen is de releaseversie van de APIs voor zaakgericht werken gepresenteerd, en wordt gewerkt aan API-standaarden voor het bevragen van basisregistraties BRP, BRK en BAG.


===APIs voor zaakgericht werken===
Om doelmatig en efficiënt met API's te werken is het belangrijk om de manier waarop API's worden ontwikkeld, gedocumenteerd, getest en werken te standaardiseren. Er zijn een aantal manieren om dit te realiseren. Een daarvan is het kiezen voor een bepaalde architectuurstijl. Net als in de rest van de wereld geldt ook voor de Nederlandse overheid dat de voorkeur momenteel uitgaat naar API's die werken volgens de [https://en.wikipedia.org/wiki/Representational_state_transfer REST-architectuurstijl]. Maar dan nog geldt dat er aanvullende ontwerpkeuzes moeten worden gemaakt. Daarom is afgesproken om overheidsbrede afspraken te maken over hoe de REST-stijl wordt toegepast bij het ontwerpen van API's. Deze afspraken zijn vastgelegd in de [https://www.forumstandaardisatie.nl/open-standaarden/rest-api-design-rules REST-API Design Rules] standaard.
Van de APIs voor zaakgericht werken is eind 2019 een eerste productieversie (versie 1.0.0) gepresenteerd. Meer informatie over deze standaarden is te vinden op de [https://www.vngrealisatie.nl/producten/api-standaarden-zaakgericht-werken website van VNG Realisatie]. Voor ontwikkelaars is meer documentatie beschikbaar via de [https://github.com/VNG-Realisatie/gemma-zaken/releases GitHub-repository].


===Haal Centraal bevragen basisregistraties===
Op de website [https://developer.overheid.nl developer.overheid.nl] is te zien dat er steeds meer overheids-API's beschikbaar komen die allerlei soorten functionaliteit aanbieden. Op [https://data.overheid.nl/ data.overheid.nl] worden (ook) API-specificaties gepubliceerd waarmee open data is op te vragen. Voor gemeenten zijn met name API's interessant waarmee elders vastgelegde brongegevens toegankelijk worden gemaakt. Gebruik daarvan kan bijvoorbeeld leiden tot hogere actualiteit en betrouwbaarheid van data en het onderhouden van lokale kopieën overbodig maken.  
Onder de noemer 'Haal Centraal' wordt gewerkt aan API-definitities die het mogelijk maken om de BRP, BRK en BAG te bevragen. Meer informatie is te vinden op de Github-repository's voor [https://github.com/VNG-Realisatie/Haal-Centraal-BRP-bevragen BRP bevragen], [https://github.com/VNG-Realisatie/Haal-Centraal-BRK-bevragen BRK bevragen] en [https://github.com/VNG-Realisatie/Haal-Centraal-BAG-bevragen BAG bevragen].


===Hoe komen we samen tot API-standaarden===
De [[Architectuurvisie|GEMMA Architectuurvisie]] beschrijft hoe standaardisatie via het gebruik van API's cruciaal is om toe te kunnen werken naar een fundamenteel betere informatievoorziening voor gemeenten. Iets dat verder wordt uitgewerkt binnen de [[thema-architectuur Common Ground]] die de architectuur uitwerkt die nodig is om de doelen van Common Ground te realiseren.  
Voorheen werd er toegewerkt naar één openbare consultatie waarmee een standaard eenmalig werd getoetst bij stakeholders. Bij de nieuwe werkwijze is er sprake van een voortdurende afstemming met partijen waarbij meerdere instrumenten worden ingezet, te weten:
*Repositories op Github: te allen tijde kunnen partijen de stand van zaken raadplegen en de planning raadplegen. Ook kunnen zij bugs inschieten en wensen aanmelden in de vorm van user stories.
*Referentiecomponenten en API testvoorziening in de cloud waartegen getest kan worden.
*Elke vier weken wordt er een publieke Sprint-demo georganiseerd waar de gerealiseerde user stories worden gedemonstreerd. Bezoekers kunnen vragen stellen en direct feedback geven op de resultaten.
*API-labs, eveneens openbaar, geven developers van gemeenten en leveranciers de kans om met ondersteuning van het ZGW team te experimenteren met de API’s. Ook hier kunnen uiteraard bugs en nieuwe wensen gemeld worden.
*Presentaties op de Leveranciersdag van VNG-Realisatie
Deze instrumenten tezamen zijn onderdeel van de openbare consultatie. Er zal dus sprake zijn van een voortdurende consultatie van de stakeholders, waarmee ook de kans ontstaat om de standaard voortdurend te verbeteren op aangeven van de gebruikers.


‘Issues’ en ‘Pull Requests’ zijn dus meer dan welkom.
Vanuit de VNG wordt op verschillende manieren gewerkt aan de ontwikkeling van gestandaardiseerde API's:


===Problemen, suggesties en vragen===
* Via het programma HaalCentraal is gewerkt aan het ontwikkelen van de [https://vng-realisatie.github.io/Haal-Centraal/ HaalCentraal API's] zodat gemeenten beter data kunnen opvragen uit de basisregistraties.
* Het project Notificatieservices heeft een concept-standaard ontwikkeld voor het notificeren van plaatsgevonden gebeurtenissen, zoals het wijzigen van brongegevens, aan daarop geabonneerde afnemers. Deze [https://logius.nl/domeinen/gegevensuitwisseling/nl-gov-profile-cloudevents NL GOV for CloudEvents standaard] is nu in beheer bij Logius.
* Voor ondersteuning van zaakgericht werken binnen gemeenten zijn [https://vng.nl/projecten/zaakgericht-werken-api API-standaarden voor zaakgericht werken] ontwikkeld.


Het is niet nodig om software of documentatie te schrijven om toch bij te dragen. De ontwikkeling is ook gebaat bij gerapporteerde problemen, suggesties voor wijzigingen en vragen over dingen die (nog) onduidelijk zijn. Om dit te doen kan een [https://github.com/VNG-Realisatie/gemma-zaken/issues issue worden gemaakt]. Op de supportpagina’s van GitHub staat [https://help.github.com/en/articles/creating-an-issue uitleg over het maken van issues].
{{Landingspagina
|titel1  = Producten
|inhoud1 =
Architectuurproducten en API's
* [[Project API referentiearchitectuur]]
* [[Thema-architectuur Common Ground]]
* [[Beveiligingsrichtlijnen voor API's en webservices]]


===Documentatie en code===
GEMMA standaardenlijst
* [[GEMMA API-standaardenlijst|API-standaardenlijst]]
|titel2  = Meer informatie
|inhoud2 =  
Vastgestelde standaarden op vng.nl
* [https://vng.nl/artikelen/overzicht-gemeentelijke-standaarden Overzicht gemeentelijke standaarden]


Maak om bij te dragen aan de documentatie of software van de ZGW API’s een zogenaamde Pull Request. Lees alles over hoe git (en GitHub) werkt in deze introductie over git flow](https://guides.github.com/introduction/flow/).
Aan de slag met API-standaarden
* [https://vng-realisatie.github.io/Standaarden/API-standaarden API-specificaties (github pages)]


====1. Maak je wijzigingen====
Nederlandse API-strategie
* [https://docs.geostandaarden.nl/api/API-Strategie/ Nederlanse API-strategie]
* [https://www.geonovum.nl/themas/kennisplatform-apis Kennisplatform API's]
* [https://www.geonovum.nl/themas/kennisplatform-apis/intentie-overeenkomst Intentieovereenkomst API Strategie en Beleid]


Dit project hanteert het [https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow OneFlow branching model]. Maak je wijzigingen op een nieuwe ‘feature branch’ met de naam feature/naam-die-bijdrage-beschrijft. Zorg voor heldere beschrijvingen voor iedere commit, zodat degenen die de bijdrage moeten beoordelen een goed beeld hebben van wat de bedoeling is.


====2. Pull Request====
|hoogte = 350px
 
}}
Wanneer de bijdrage compleet op de nieuwe feature branch staat kun je een Pull Request maken. Dit is, zoals de naam zegt, een verzoek aan de eigenaren van de repository om de branch met wijzigingen op te halen en in het project te voegen. Verzoek daarbij is om elke Pull Request te voorzien van een duidelijke beschrijving en eventuele issue nummers die met behulp van de Pull Request worden opgelost.
{{Publicatie
 
|Paginastatus=publiceren
====3. Verbeteren====
|Redactiestatus=Actueel
 
|Wikibeheerder=GEMMA Beheer
Alle bijdragen worden beoordeeld in een review proces. Je kunt zelf ook specifiek aan een teamlid vragen om een review.
}}
 
[[Category:Standaarden paginas]]
Het kan zijn dat een Pull Request direct kan worden ingevoegd. Vaak is het echter nodig om nog het e.e.a. te verbeteren aan de Pull Request voordat deze in het project kan worden ingevoegd. Feedback op de Pull Request kan komen van de eigenaren van de standaard, van andere belanghebbenden of van geautomatiseerde tests.
 
Wanneer de gewijzigde documentatie en code door de menselijke review en geautomatiseerde test komt, worden de wijzigingen van de Pull Request in het project gevoegd.
 
===Status vernieuwde informatiemodellen===
De informatiemodellen RSGB3, RGBZ2 en ImZTC2.02 zijn goedgekeurd. Toch hebben de nieuwe versies van deze standaarden de status ‘in ontwikkeling’. Zij krijgen de status ‘in gebruik’ nadat ze zijn geïmplementeerd in één of meer standaarden.
 
===Wat betekent de ontwikkeling van API-standaarden voor de bestaande StUF-standaarden?===
De ontwikkeling van StUF 03.02 en de daarmee samenhangende sectormodellen StUF BG 03.20 en StUF ZKN 03.20 is stopgezet. VNG Realisatie blijft support leveren bij de huidige generatie StUF-standaarden. Dat betekent dat we bugs, fouten en problemen herstellen.
<!-- Page revision date: 1580720750 -->

Huidige versie van 30 apr 2024 om 15:24

Het wordt steeds belangrijker voor (applicatie)componenten om onderling goed samen te werken. Om dit mogelijk te maken kennen componenten (applicatie)services die voor andere componenten toegankelijk zijn via zogenaamde 'Application Programming Interfaces' (API's). Zo kunnen componenten op een gestructureerde manier functionaliteit van andere componenten gebruiken. Bijvoorbeeld door een API aan te bieden die voor andere componenten bruikbaar is om gegevens uit een achterliggende bronregistratie te gebruiken.

Om doelmatig en efficiënt met API's te werken is het belangrijk om de manier waarop API's worden ontwikkeld, gedocumenteerd, getest en werken te standaardiseren. Er zijn een aantal manieren om dit te realiseren. Een daarvan is het kiezen voor een bepaalde architectuurstijl. Net als in de rest van de wereld geldt ook voor de Nederlandse overheid dat de voorkeur momenteel uitgaat naar API's die werken volgens de REST-architectuurstijl. Maar dan nog geldt dat er aanvullende ontwerpkeuzes moeten worden gemaakt. Daarom is afgesproken om overheidsbrede afspraken te maken over hoe de REST-stijl wordt toegepast bij het ontwerpen van API's. Deze afspraken zijn vastgelegd in de REST-API Design Rules standaard.

Op de website developer.overheid.nl is te zien dat er steeds meer overheids-API's beschikbaar komen die allerlei soorten functionaliteit aanbieden. Op data.overheid.nl worden (ook) API-specificaties gepubliceerd waarmee open data is op te vragen. Voor gemeenten zijn met name API's interessant waarmee elders vastgelegde brongegevens toegankelijk worden gemaakt. Gebruik daarvan kan bijvoorbeeld leiden tot hogere actualiteit en betrouwbaarheid van data en het onderhouden van lokale kopieën overbodig maken.

De GEMMA Architectuurvisie beschrijft hoe standaardisatie via het gebruik van API's cruciaal is om toe te kunnen werken naar een fundamenteel betere informatievoorziening voor gemeenten. Iets dat verder wordt uitgewerkt binnen de thema-architectuur Common Ground die de architectuur uitwerkt die nodig is om de doelen van Common Ground te realiseren.

Vanuit de VNG wordt op verschillende manieren gewerkt aan de ontwikkeling van gestandaardiseerde API's:

  • Via het programma HaalCentraal is gewerkt aan het ontwikkelen van de HaalCentraal API's zodat gemeenten beter data kunnen opvragen uit de basisregistraties.
  • Het project Notificatieservices heeft een concept-standaard ontwikkeld voor het notificeren van plaatsgevonden gebeurtenissen, zoals het wijzigen van brongegevens, aan daarop geabonneerde afnemers. Deze NL GOV for CloudEvents standaard is nu in beheer bij Logius.
  • Voor ondersteuning van zaakgericht werken binnen gemeenten zijn API-standaarden voor zaakgericht werken ontwikkeld.
Deze pagina is het laatst bewerkt op 30 apr 2024 om 15:24.