Mijn opdracht
Ik werk aan de OOAPI-koppeling voor de Open Universiteit. Hiermee kunnen andere applicaties onderwijsgegevens ophalen. De API mag niets in de OU-database aanpassen.

In deze screenshot staat de opdracht met de eisen en wensen. Hieronder heb ik ze per prioriteit gezet. Must-have moet erin, should-have komt daarna en could-have kan als er tijd en genoeg gegevens zijn.
Must-have
| Onderdeel | Wat moet het doen? |
|---|---|
| Courses | Een lijst en één course via het id ophalen. Minimaal courseId, primaryCode en name teruggeven. |
| Programmes | Een lijst en één programme via het id ophalen. Minimaal programmeId, primaryCode, programmeType en name teruggeven. |
| Organisations | Een lijst en één organisation via het id ophalen. Minimaal organisationId, primaryCode, organisationType en name teruggeven. |
| Mapping | Gegevens uit de OU-database omzetten naar de juiste OOAPI-velden en datatypes. |
| Toegang | JWT-tokens en rollen gebruiken om toegang te controleren. |
| Alleen lezen | Geen gegevens toevoegen, aanpassen of verwijderen in de OU-database. |
| Hele koppeling | Requests via APIM en Azure Functions verwerken en gegevens uit Oracle ophalen. |
| Techniek | C# en Azure Functions gebruiken. Secrets via Azure beheren. |
Should-have
- Lijsten opdelen in pagina’s met
pageSizeenpageNumber. - Gegevens opzoeken met
primaryCode. - Bij courses en programmes de organisatie meesturen met
expand=organisation. - Extra velden mappen als ze al in de database staan.
- Uitleg en werkzaamheden bijhouden in de DevOps-wiki.
- Bij taken zetten wat nog moet, wat klaar is en hoeveel tijd het ongeveer kost.
- Commits klein houden en zoveel mogelijk per functionaliteit maken.
Could-have
- Course offerings en programme offerings toevoegen.
Wat er niet bij hoort
- POST-, PUT-, PATCH- en DELETE-routes om OU-gegevens te wijzigen.
- De database aanpassen voor extra velden zonder dit eerst af te stemmen.
Hoe ik de eisen controleer
Bij iedere resource vraag ik een lijst en een detail op. Ik controleer de status, het id, primaryCode en de naam. Bij lijsten controleer ik ook de pagina’s. Voor courses en programmes kijk ik of expand=organisation de organisatie meestuurt.

Voor toegang staan fouttests in mijn wiki-verslag. De losse requests en responses staan niet bij dat verslag. De code voor toegang staat in de middleware en bij de Reader-attributen van de functions.
Verdere afspraken

Voor OAuth staat samenwerking met Twyzer afgesproken. Ook moet ik mijn commits klein houden en TODO/DONE bijhouden in de wiki.

Deze mappingpagina is bestaande documentatie van de OU. De tabel geeft aan welke databasevelden bij de OOAPI-velden horen. Een sterretje betekent verplicht. Bij organisationId staat de bron nog als vraagteken.