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.

E-mail met de opdracht en eisenlijst

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

OnderdeelWat moet het doen?
CoursesEen lijst en één course via het id ophalen. Minimaal courseId, primaryCode en name teruggeven.
ProgrammesEen lijst en één programme via het id ophalen. Minimaal programmeId, primaryCode, programmeType en name teruggeven.
OrganisationsEen lijst en één organisation via het id ophalen. Minimaal organisationId, primaryCode, organisationType en name teruggeven.
MappingGegevens uit de OU-database omzetten naar de juiste OOAPI-velden en datatypes.
ToegangJWT-tokens en rollen gebruiken om toegang te controleren.
Alleen lezenGeen gegevens toevoegen, aanpassen of verwijderen in de OU-database.
Hele koppelingRequests via APIM en Azure Functions verwerken en gegevens uit Oracle ophalen.
TechniekC# en Azure Functions gebruiken. Secrets via Azure beheren.

Should-have

  • Lijsten opdelen in pagina’s met pageSize en pageNumber.
  • 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.

Course-response met de velden, paging en 23 geslaagde controles

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

Afspraken over OAuth, kleine commits en TODO/DONE

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

Bestaande afspraken over de organisatievelden

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.

Planning · Ontwerp