API Catalogus
  • Go 96.5%
  • Shell 3.4%
  • Dockerfile 0.1%
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Matthijs Hovestad 13519f0586
Merge pull request #142 from developer-overheid-nl/dependabot/go_modules/github.com/go-playground/validator/v10-10.30.3
chore(deps): bump github.com/go-playground/validator/v10 from 10.30.2 to 10.30.3
2026-06-02 14:37:07 +02:00
.changes chore(changelog): auto-update after merge [skip ci] 2026-05-28 08:00:45 +00:00
.github Merge pull request #138 from developer-overheid-nl/dependabot/github_actions/docker/build-push-action-7.2.0 2026-05-28 10:02:18 +02:00
api Merge branch 'main' into 93-api-rss-feed-tbv-status-updates 2026-05-22 10:51:22 +02:00
cmd feat(api): enhance validation and lifecycle management for API updates 2026-04-09 14:11:14 +02:00
pkg/api_client chore: merge main into 93-api-rss-feed-tbv-status-updates 2026-05-28 07:29:43 +00:00
.changie.yaml Add changelog support with initial configuration and documentation 2026-03-05 09:57:49 +01:00
.env fix: use PUBLIC_API_BASE_URL env var for RSS feed atom self-link to prevent header spoofing 2026-05-12 08:14:06 +00:00
.gitignore gitingore added 2025-04-15 13:34:25 +02:00
CHANGELOG.md chore(changelog): auto-update after merge [skip ci] 2026-05-28 08:00:45 +00:00
docker-compose.yml Remove testApis.json file containing API references and organization URIs. 2025-10-01 15:20:05 +02:00
Dockerfile release run 2025-07-31 14:04:43 +02:00
go.mod chore(deps): bump github.com/go-playground/validator/v10 2026-05-29 23:37:14 +00:00
go.sum chore(deps): bump github.com/go-playground/validator/v10 2026-05-29 23:37:14 +00:00
LICENSE.md Create LICENSE.md 2025-07-02 15:24:57 +02:00
publiccode.yml Update pc.yml 2026-04-01 13:46:10 +02:00
README.md fix(api): update RSS feed endpoint to use .rss extension and remove Atom link 2026-05-22 09:19:14 +02:00
responses.json Refactor API parameters and add search functionality 2025-10-07 14:57:15 +02:00
sync-errors.json remove sync-errors 2026-04-22 10:02:36 +02:00
sync-prod-to-target.sh [deploy-test] 2026-04-28 09:09:26 +02:00

API registratie

API van het API register (apis.developer.overheid.nl)

Overview

  • API version: 1.0.0
  • Build date: 2025-04-02
  • Generator version: 7.7.0

Lokaal draaien

  1. Start de afhankelijkheden:

    docker compose up -d
    
  2. Start de server:

    go run cmd/main.go
    

    De API luistert standaard op poort 1337.

Typesense integratie

Nieuwe APIs worden na een succesvolle POST ook naar Typesense gestuurd, zodat ze vindbaar zijn in de zoekfunctie. Stel hiervoor de volgende omgevingsvariabelen in:

  • TYPESENSE_ENDPOINT: basis-URL van de Typesense cluster (bijv. https://search.don.apps.digilab.network).
  • TYPESENSE_API_KEY: API key met schrijfrechten.
  • TYPESENSE_COLLECTION: naam van de collectie (standaard api_register).
  • TYPESENSE_DETAIL_BASE_URL: basis-URL voor detailpagina's in de frontend (bijv. https://api-register.don.apps.digilab.network/apis).
  • ENABLE_TYPESENSE: zet op false om Typesense indexing volledig uit te schakelen (standaard true).

Dagelijkse OAS-refresh

Bij het opstarten van de server wordt automatisch een aparte service gestart die direct een refresh-run uitvoert. Daarna draait de job iedere ochtend om 07:00 en haalt alle geregistreerde APIs opnieuw op. Zodra de OAS is gewijzigd, volgen exact dezelfde stappen als bij een POST: validatie, regeneratie van artifacts (Bruno, Postman en OAS-bestanden) en het opruimen van verouderde bestanden. Er zijn geen extra omgevingsvariabelen nodig.

RSS-feed configuratie

Elke API heeft een RSS-feed beschikbaar op /apis/{id}/feed.rss.

Changelog (Changie)

Voor user-facing wijzigingen (fix/feature/breaking) verwachten we per PR een Changie-fragment in .changes/unreleased.

Eenmalig installeren:

go install github.com/miniscruff/changie@latest

Fragment aanmaken:

changie new

Normaal is een fragment niet nodig voor interne refactors zonder zichtbaar effect, docs-only wijzigingen en CI-only tweaks.

Bij een release kun je de fragments bundelen in CHANGELOG.md:

changie batch <version>

Dit gebeurt ook automatisch bij elke merge naar main via GitHub Actions: changie batch auto en daarna changie merge, waarna automatisch een PR met de changelog-updates wordt aangemaakt.

Deployen

De deployment van deze site verloopt via GitHub Actions en een aparte infra repository.

Benodigde variabelen en secrets

  • Organization variable INFRA_REPO, bijvoorbeeld developer-overheid-nl/don-infra.
  • Repository variable KUSTOMIZE_PATH, met als basispad bijvoorbeeld apps/api/overlays/.
  • Secrets RELEASE_PROCES_APP_ID en RELEASE_PROCES_APP_PRIVATE_KEY voor het aanpassen van de infra repository.

Deploy naar test

De testdeploy draait via .github/workflows/deploy-test.yml.

  • De workflow draait op pushes naar branches behalve main.
  • Alleen commits met [deploy-test] in de commit message worden echt gedeployed.
  • Er wordt een image gebouwd en gepusht naar ghcr.io/<owner>/<repo> met tags test en de commit SHA.
  • Daarna wordt in INFRA_REPO het bestand ${KUSTOMIZE_PATH}test/kustomization.yaml bijgewerkt naar de nieuwe image tag en direct gecommit.

Voorbeeld commit message:

feat: pas content aan [deploy-test]

Deploy naar productie

De productiedeploy draait via .github/workflows/deploy-prod.yml.

  • De workflow draait bij een push naar main.
  • Er wordt in INFRA_REPO een release branch aangemaakt.
  • In ${KUSTOMIZE_PATH}prod/kustomization.yaml wordt de image tag bijgewerkt naar de commit SHA van deze repository.
  • Daarna wordt automatisch een pull request in de infra repository geopend.
  • De productie-uitrol gebeurt door die pull request te mergen.

Contributies en deploy

Een contribution of pull request leidt niet automatisch tot een deployment.

  • Een pull request triggert wel CI, waaronder de build en JSON-validatie.
  • De build in .github/workflows/go-ci.yml bouwt voor een pull request een Docker image als controle, maar pusht dat image niet naar GHCR en past de infra repository niet aan.
  • Er is dus geen automatische preview-omgeving per pull request.
  • Een testdeploy gebeurt pas na een push naar een branch in deze repository met [deploy-test] in de commit message.
  • Die testdeploy gebruikt repository- en organization-variables en secrets om ook INFRA_REPO aan te passen. Daardoor is dit pad in de praktijk bedoeld voor maintainers of contributors met een branch in deze repository.