Eduarte Connect — documentatie Overzicht
Vertrouwelijk — niet verspreiden
Technische specificatie

EKOC — Onderwijscatalogus

Technische documentatie voor developers
Connector EKOC · domein Catalogus · versie 1.0 · 17 juni 2026

Overzicht & scope

EKOC (Eduarte Koppeling Onderwijscatalogus) is een lezen-en-schrijven REST-API voor het beheer van de onderwijscatalogus: resultaatstructuren, toetsen, onderwijsproducten, opleidingen (met cohorten) en de bijbehorende referentiesoorten. De API levert JSON en volgt de gemeenschappelijke Connect-conventies.

Deze specificatie beschrijft de technische uitgangspunten en geeft een overzicht op hoofdlijnen. De volledige OpenAPI-specificatie van EKOC wordt niet publiek gepubliceerd; neem voor de volledige endpoint- en schemadefinities contact op met Eduarte (connect@eduarte.nl).

Aan de slag & dev-omgeving

  1. Toegang aanvragen — vraag via Eduarte (connect@eduarte.nl) OAuth2-clientgegevens aan voor EKOC.
  2. Scope — EKOC gebruikt de scope onderwijscatalogus (lezen en schrijven).
  3. Token ophalen — haal een access-token op via de OAuth2 Client Credentials-flow.
  4. Aanroepen — stuur het token mee als Authorization: Bearer <token> en roep endpoints aan onder /connect/ekoc/1_0.
  5. Testen — gebruik de beschikbare ontwikkel-/testomgeving voordat je in productie gaat.

Beveiliging

Alle Connect API’s worden uniform beveiligd. De maatregelen hieronder gelden voor elke connector; afwijkingen staan in de connector-specifieke secties.

Transport (TLS)

Alle communicatie verloopt verplicht via HTTPS. Minimaal TLS 1.2, bij voorkeur TLS 1.3. Er zijn geen HTTP-endpoints, ook niet voor redirects. Een geldig servercertificaat is vereist. Hierin volgen we de aanbeving van de NSCT

Authenticatie & autorisatie

Authenticatie verloopt via OAuth 2.0 met de Client Credentials-flow (server-to-server):

Scopes bepalen de toegangsrechten volgens het principe van least privilege. Elke API kent één of meer scopes; een token bevat alleen de scopes die de client nodig heeft. De vereiste scope(s) per connector staan in de connector-specifieke sectie.

Waar OAuth 2.0 niet mogelijk is (bijvoorbeeld bij legacy-integraties), kan als terugvaloptie een Bearer-token (JWT) worden gebruikt.

Per endpoint

Elk endpoint heeft een expliciete security-definitie. Onjuiste of ontbrekende autorisatie leidt tot een 401 Unauthorized (niet geauthenticeerd) of 403 Forbidden (onvoldoende rechten); zie Foutafhandeling.

Conventies & ontwerpprincipes

De Connect API’s volgen gemeenschappelijke conventies, zodat integraties voorspelbaar en consistent zijn.

Formaat & naamgeving

Paginering

Lijst-endpoints zijn gepagineerd (offset-based):

Parameter Type Default Beschrijving
offset integer 0 Startpositie in de resultatenlijst
pageSize integer 100 Aantal items per pagina (standaard maximum 200)

De response bevat een meta-object met offset, pageSize en totalItems, plus een items-array. Een leeg resultaat geeft een lege items-array terug — geen 404.

{
  "meta": { "offset": 20, "pageSize": 10, "totalItems": 156 },
  "items": [ { "id": "..." } ]
}

Versionering

Versies volgen SemVer in de vorm MAJOR.MINOR. De major-versie staat in het pad (bv. /connect/eks/v1_0/...). Non-breaking wijzigingen (nieuw optioneel veld, nieuw endpoint, nieuwe enum-waarde) verschijnen als minor-versie binnen dezelfde major; breaking wijzigingen leiden tot een nieuwe major-versie die parallel draait. Bij uitfasering gelden een deprecation-notice en een sunset-datum (minimaal 6 maanden), gecommuniceerd via Deprecation- en Sunset-headers.

Afhankelijkheden & validatie

De onderwijscatalogus kent onderlinge samenhang; houd hier rekening mee bij schrijfacties:

Wijzigingen ophalen

Wijzigingen in de onderwijscatalogus (onderwijsproducten, opleidingen, toetsen, resultaatstructuren e.d.) worden in de toekomst gesignaleerd via de notificatiekoppeling EKN met cloudevents, zodat een afnemer gericht de nieuwe stand kan ophalen. Deze notificaties zijn nog niet beschikbaar. EKOC kent (nog) geen changed-since-parameter; tot die tijd haal je de actuele stand op via de lijst-endpoints.

Do’s & don’ts

Praktische richtlijnen voor een robuuste integratie met Connect.

Do’s

Don’ts

Bron: API-CONVENTIONS.md (o.a. “Wanneer niet suppressen”) en de Connect REST-principes.

Foutafhandeling

Foutmeldingen zijn gestandaardiseerd op basis van RFC 7807 (Problem Details for HTTP APIs). Hierdoor zien fouten er over alle Connect API’s hetzelfde uit.

Voorbeeld (401)

{
  "type": "https://tools.ietf.org/html/rfc6750#section-3.1",
  "title": "Unauthorized",
  "status": "401",
  "detail": "The request requires user authentication."
}

Veelvoorkomende statuscodes

Status Betekenis Wanneer
200 / 201 OK / Created Verzoek geslaagd
400 Bad Request Ongeldig verzoek (validatie)
401 Unauthorized Niet (geldig) geauthenticeerd
403 Forbidden Geauthenticeerd, maar onvoldoende rechten
404 Not Found Resource bestaat niet
405 Method Not Allowed HTTP-methode niet toegestaan op deze resource
429 Too Many Requests Rate limit overschreden (zie Throttling)
500 Internal Server Error Onverwachte fout aan serverzijde

Let op: API’s uit de keten (OKxx) volgen de foutafhandeling van hun eigen standaard (bv. OOAPI) en kunnen hiervan afwijken.

Throttling & rate limiting

Alle endpoints kennen rate limiting om misbruik en overbelasting te voorkomen. Dit wordt op infrastructuurniveau afgedwongen via de Topicus API-gateway.

Bij overschrijding van de limiet antwoordt de API met 429 Too Many Requests. De response kan de volgende headers bevatten:

Header Betekenis
Retry-After Aantal seconden tot een volgende aanroep is toegestaan
X-RateLimit-Limit Maximum aantal aanroepen per tijdsperiode
X-RateLimit-Remaining Resterend aantal aanroepen in de huidige periode

Aanbevolen client-gedrag

Beschikbaarheid & SLA

Eduarte Connect wordt aangeboden als beheerde dienst. Beschikbaarheid, onderhoud en support zijn vastgelegd in de partnerovereenkomst en bijbehorende SLA.

Uitgangspunten

Let op: concrete SLA-cijfers (beschikbaarheidspercentage, reactietijden, onderhoudsvensters) worden vastgelegd in de partnerovereenkomst en zijn nog te bevestigen voor deze documentatie.

Endpoints op hoofdlijnen

Alle lijst-endpoints zijn gepagineerd (zie Conventies).

Catalogusbeheer (lezen + schrijven)

Endpoint Methoden Toelichting
/resultaatstructuren · /{id} GET, POST / GET, PUT, DELETE Resultaatstructuren beheren
/toetsen · /{id} GET, POST / GET, PUT, DELETE Toetsen beheren
/onderwijsproducten · /{id} GET, POST / GET, PUT, DELETE Onderwijsproducten beheren
/opleidingen · /{id} GET, POST / GET, PUT, DELETE Opleidingen beheren
/opleidingen/{opleidingid}/cohorten · /{cohortid} GET / GET, PUT, DELETE Cohorten van een opleiding

Referentiegegevens (alleen lezen)

Endpoint Methoden Toelichting
/onderwijsproductsoorten · /{id} GET Soorten onderwijsproducten
/productregelsoorten · /{id} GET Soorten productregels

Voor de volledige parameter-, response- en schemadefinities: neem contact op met Eduarte (connect@eduarte.nl).

Versiebeheer & changelog

EKOC volgt de Connect-versioneringsstrategie (SemVer, major-versie in het pad). De huidige versie is 1.0. Non-breaking wijzigingen verschijnen als minor-versie binnen dezelfde major; breaking wijzigingen leiden tot een nieuwe major-versie die parallel draait, met een deprecation-notice en sunset-datum.

Versie Datum Wijzigingen
1.0 2026 Eerste versie: beheer van resultaatstructuren, toetsen, onderwijsproducten, opleidingen (met cohorten) en referentiesoorten.