Les 7: REST APIs & JWTs
Tijdens deze oefeningenreeks werk je met een ASP REST API in de back-end. Deze back-end kan gebruikt worden om een boekencollectie te beheren.
Tijdens de oefening kan je gebruikt maken van de startbestanden en de API code.
Endpoints
Er worden slechts een paar endpoints gebruikt tijdens deze oefeningen. Als voorbereiding op het examen, kan je een applicatie bouwen rond deze endpoints. Hieronder worden alle endpoints opgelijst.
De GET endpoints zijn niet beveiligd, voor alle andere endpoints moet de gebruiker ingelogd zijn, dit kan met dezelfde credentials als in de theorieles. Via de GET endpoints kan je de structuur van de data bekijken.
| Endpoint | Data |
|---|---|
| /api/attributes | Attributen die de speciale features van een boek aangeven |
| /api/authors | De auteurs, met een voor- en achternaam en eventueel een website |
| /api/books | De core van de applicatie, de boeken in de collectie |
| /api/conditions | De staat waarin de boeken zich bevinden |
| /api/formats | De verschillende formaten waarin een boek uitgebracht kan worden |
| /api/publishers | Uitgevers |
| /api/roles | De verschillende rollen die iemand kan aannemen tijden de productie van een boek |
| /api/series | Series |
| /api/users | Authentication API, gelijk aan deze in de theorie |
Oefening 1: Context
Gebruikt de context API om in de App component bij te houden of de gebruiker ingelogd is en wat zijn informatie hiervoor is.
Zorg dat de userinfo (en de bijhorende JWT token) op tij ververst worden.
Oefening 2: API
Schrijf de nodige methodes om de GET, POST, PUT, en DELETE operaties op de conditions, publishers en series endpoints te gebruiken. Probeer hiervoor geen code te dupliceren.
Oefening 3: Hooks
Bouw, door middel van hooks, een overzicht van de series. Voorzie alle CRUD-functionaliteit. In onderstaande video zijn de Bootstrap Icons bi-trash en bi-pencil-square gebruikt. Voor meer info over het gebruik van Bootstrap Icon kan je de oefeningen van les 5 raadplegen.
Oefening 4: Recoil
Bouw, door middel van Recoil, een overzicht van alle conditions. Voorzie alle CRUD-operaties.

Oefening 5: Class Components
Bouw, door middel van class components, een overzicht van alle publishers. Voorzie alle CRUD-operaties. We hebben niet gezien hoe we de context API kunnen consumeren in een class component. Je zult dus zelf moeten uitzoeken hoe je de context API kan gebruiken in een class component. Als alternatief kan je de JWT ook, bij elke wijziging, toevoegen aan de API code (via een globale variabele of een instantievariabelen als je met klassen gewerkt hebt).
