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.

EndpointData
/api/attributesAttributen die de speciale features van een boek aangeven
/api/authorsDe auteurs, met een voor- en achternaam en eventueel een website
/api/booksDe core van de applicatie, de boeken in de collectie
/api/conditionsDe staat waarin de boeken zich bevinden
/api/formatsDe verschillende formaten waarin een boek uitgebracht kan worden
/api/publishersUitgevers
/api/rolesDe verschillende rollen die iemand kan aannemen tijden de productie van een boek
/api/seriesSeries
/api/usersAuthentication 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.

Fig 1: CRUD Operaties op de series

Oefening 4: Recoil

Bouw, door middel van Recoil, een overzicht van alle conditions. Voorzie alle CRUD-operaties.

Fig 2: CRUD Operaties op de Conditions

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).

Fig 3: CRUD Operaties op de Publishers
Last Updated:
Contributors: Sebastiaan Henau