Skip to main content

Opdracht 3: FastAPI Application

In deze opdracht gaan we aan de hand van FastAPI de Bookstore API opzetten. FastAPI is een modern, snel (high-performance) web framework voor het bouwen van API's met Python 3.7+. FastAPI maakt gebruik van de nieuwste async en await-sleutelwoorden, wat het een asynchroon framework maakt, waardoor hoge prestaties en gelijktijdigheid mogelijk zijn, terwijl het toch gemakkelijk te lezen en te onderhouden is. Het biedt ook uitstekende ondersteuning voor moderne Python-functies zoals type annotaties, die de code leesbaarder en onderhoudbaarder maken.

Opdracht 3.1

Maak een derde project aan, gebruik zoals in opdracht 1 en 2 ook een standaard Python project.

Opdracht 3.2

Vraag aan ChatGPT of deze een FastAPI applicatie kan ontwikkelen aan de hand van de feature file die in opdracht 2 is gegenereerd. In de gegenereerde code zal je een klasse te zien krijgen genaamd Book, met als argument BaseModel. Wanneer je een nieuw gegevensmodel maakt in Pydantic, kun je een klasse definiëren die is afgeleid van BaseModel. Dit geeft het model de mogelijkheid om automatisch de structuur van het model te valideren en de juiste gegevenstypes toe te passen op de velden van het model.

Maak een bestand aan in je project genaamd main.py en plaats je code hier in.

Als alles volgens plan verloopt, zou je nu een FastAPI applicatie moeten hebben. Om de API nu op te starten, ga in je terminal naar de folder waar de main.py staat en voer je het commando uvicorn main:app --reload uit.

Om te checken of de API draait, kan je in je browser naar 127.0.0.1:8000/books, in het geval dat Chat-GPT een andere pad heeft gegenereerd voor het ophalen van de boeken, gebruik dat pad dan.

Opdracht 3.3

Tot slot kan je de test van opdracht 2 proberen uit te voeren door behave uit te voeren in de terminal in de folder van opdracht 2.