Vergelijkende studie tussen FastAPI en andere python REST API microframeworks in de context van het analyseren van e-commerce metrics Paper Research Methods: onderzoeksvoorstel Emile Van Tichelen1 , Giovany De Murel2 Samenvatting Dit is een vergelijkende studie tussen FastAPI en andere relevante op python gebaseerde backend web microframeworks met het doel de mogelijkheid te onderzoeken of het waardevol is om te migreren naar een nieuw python gebaseerd microframework met betere of vergelijkbare performantie en developer gebruikerservaring. Dit framework wordt gebruikt voor het analyseren van interne e-commerce metrics van de webshop binnen het bedrijf Coolblue. Dit onderzoek zal worden uitgevoerd door geautomatiseerde performantie testen uit te voeren op een selectie van relevante frameworks, en deze te laten beoordelen op gebruikerservaring en features door de software developers die het in gebruik zouden nemen. Als resultaat wordt verwacht dat FastAPI nog steeds de beste keuze zal blijken voor het team. Het bevestigen van deze veronderstelling schept waarde vanwege het feit dat dit zou vaststellen dat bij dit team nog steeds de meest competitieve technologieën aangewend worden binnen het bedrijf. Sleutelwoorden Webapplicatieontwikkeling; E-business; Databanken en big data 1 2 emile.vantichelen@student.hogent.be giovany.demurel@student.hogent.be Inhoudsopgave 1 Inleiding 1 2 Overzicht literatuur 2 2.1 FastAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 selectie kandidaat frameworks . . . . . . . . . . . . . 2 stackexchange developer survey • jetbrains python developer survey • rapidapi blog • benchmarks klen • hackr.io • finale selectie frameworks 2.3 beschrijving kandidaat frameworks . . . . . . . . . . 3 Hug • Sanic • Tornado • Bottle • Flask • BlackSheep • growler • AioHTTP • CherryPy • Falcon • muffin • quart • morepath • pycnic 3 Methodologie 4 3.1 Fase 1: performantie . . . . . . . . . . . . . . . . . . . . 4 3.2 Fase 2: usability . . . . . . . . . . . . . . . . . . . . . . . . 4 3.3 Fase 3: verwerking . . . . . . . . . . . . . . . . . . . . . . 4 4 Verwachte conclusies 4 Referenties 5 1. Inleiding In dit onderzoek wordt nagegaan of er een web framework is die de performantie, schaalbaarheid of gebruiksvriendelijkheid overtreft van het python REST API framework FastAPI, zonder in te leveren op een van voorgaande kenmerken. Het doel is om een advies te bekomen indien een gepast framework gevonden wordt, aan de hand waarvan een beslissing 0 https://github.com/HoGentTIN/rm-2122-paper-rmdemurelvantichelen kan genomen worden of het voldoende waarde kan bijbrengen om naar een nieuw framework over te stappen en zo competitief te blijven. Dit framework wordt gebruikt door een backend software developer team binnen het bedrijf Coolblue, die e-commerce metrics van de webshop uit een NoSQL databank ophaalt en verwerkt aan de hand van python data science libraries waaronder TensorFlow, Numpy SciPy, Panas en Matplotlib. De verwerking van de opgehaalde data aan de hand van deze libraries dient onveranderd te blijven: Om deze libraries te kunnen blijven gebruiken is het bijgevolg een vereiste dat de te vergelijken web frameworks op python gebaseerd zijn. De hoofdoverweging bij de het gebruik van FastAPI is de snelheid waarbij gegevens op te halen waren aan de hand van API calls, dit blijft de belangrijkste overweging: In geen geval zal een framework met een tragere performantie in overweging genomen worden ter vervanging van FastAPI . Indien geen sneller framework bekomen wordt als resultaat van dit onderzoek, is een framework met vergelijkbare performantie maar met uitgebreide of verbeterde user experience features ten opzichte van FastAPI een acceptabel resultaat van het onderzoek. Het onderzoek wordt gevoerd over een periode van 3 maanden, ten vroegste van 20/02/2023 en dient geconcludeerd te zijn ten laatste op 26/05/2023. De inhoud van deze onderzoekspaper wordt opgedeeld als volgt: Een overzicht van het literatuuronderzoek, waar FastAPI en de kandidaat frameworks en hun kenmerken beschreven worden en de keuze om Vergelijkende studie tussen FastAPI en andere python REST API microframeworks in de context van het analyseren van e-commerce metrics 2/5 deze te vergelijken gemotiveerd worden. De Methodologie, waar beschreven wordt op welke manier en gebruik makend van welke tools de vergelijkende studie zal uitgevoerd worden en aan welke vereisten moet voldaan worden om als mogelijke vervanger van FastAPI overwogen te worden. Tenslotte de verwachte conclusie. Waar reeds een waarschijnlijk resultaat besproken wordt, gebaseerd op de literatuurstudie voorafgaande de uitvoering van de vergelijkende studie. 2. Overzicht literatuur 2.1 FastAPI FastAPI is een modern, hoog performant web microframework voor het ontwikkelen van restful APIs gebruik makende van Python versie 3.6 en hoger, gebaseerd op standaard python type hints. De belangrijkste features zijn: Snelheid: Heel erg snel, op het niveau van NodeJS en GO, gebaseerd op Starlette en Pydantic. Een van de snelste Python frameworks op de markt. Snel en eenvoudig om in te coderen, het voorkomt ongeveer 40% van bugs gebruikelijk veroorzaakt door developers. Intuitief: Goede editor support, met ingebouwde autocompletion, waardoor minder tijd gespendeerd wordt aan debuggen. Makkelijk: Ontworpen om makkelijk is gebruik te zijn en te leren, minder tijd spenderen aan documentatie lezen. Kort: Mimimaliseert code hergebruik, minder bugs. Robuust: Produceert productie klare code en genereert automatisch interactieve documentatie. (swagger, redoc). Standards-based: Gebaseerd op en volledig compatibel met de open standaard voor APIs OpenAPI en JSON Schema. Er valt geen nieuwe syntax te leren: Alle code is gebaseerd op standaard moderne python 3.6.// Enkele van de ingebouwde kenmerken en ondersteuningen die in overwegen zullen genomen worden bij een vergelijking met andere frameworks: autocomplete, validatie, security en authenticatie, OAuth2 ( + JWT tokens ), automatisch afgehandelde dependency injection, 100% test coverage, en 100% type annotated code base. webSocket support, CORS, session en cookie support. ORM support. Gebaseerd op Starlette en pydantic. (Sebastián Ramírez, 2022) 2.2 selectie kandidaat frameworks Een lijst van python gebaseerde web frameworks worden getoetst aan bovenstaande vooropgestelde kenmerken om vervolgens een selectie van de waarschijnlijke kandidaat web frameworks te bekomen die volgens de methodes beschreven in sectie 3. Methodologie uitvoerig met elkaar vergeleken zullen worden. Deze oplijsting werd bekomen door de meest relevante python web frameworks te bepalen aan de hand van verschillende developer surveys, blogs, artikelen en benchmarks. Er wordt eerst bepaald of het om een gepast type framework gaat. Deze worden vervolgens kort besproken met verwijzingen naar desbetreffende documentatie en bronnen die naslag geven over de kenmerken die hen interessant maken onderzocht te worden. 2.2.1 stackexchange developer survey Een initiele lijst van de meest gebruikte web frameworks volgens de 2021 developer survey afgenomen door stackexchange (Stack Exchange Inc., 2021), hier elimineren we meteen alle frameworks die niet op python gebaseerd zijn waardoor drie frameworks over gehouden worden. Dit is een Paper Research Methods: onderzoeksvoorstel te klein aantal om het onderzoek op uit te voeren dus de zoektocht wordt uitgebreidt met bijkomende bronnen. React.js ASP.NET Core Flask Ruby on Rails Svelte jQuery Vue.js Angular ASP.NET Express Spring Django Gatsby Angular.js Symfony Laravel FastAPI Drupal / / 2.2.2 jetbrains python developer survey De Jetbrains developer survey (JetBrains s.r.o, 2022) bied een overzicht van veel gebruikte web frameworks specifiek aan python, dit levert meteen een grotere selectie op: Flask Web2py Bottle Django Tornado CherryPy FastAPI Pyramid Falcon 2.2.3 rapidapi blog Volgende lijst is gebaseerd op een lijst van de beste python frameworks op de markt. Shyam Purkayastha (2022). requests pycurl flask tornado bottle faster than requests fastapi hug sanic eve falcon django turbogears web2py pyramid / 2.2.4 benchmarks klen Een recente oplijsting van benchmarks (Kirill Klenov, 2022) levert ons een selectie van minder gekende python web frameworks. Volgens deze cijfers overtreffen enkele van de frameworks de performantie van FastAPI wat hen goede kandidaten maakt on zelf testen uit te voeren om dit te bevestigen. blacksheep starlette aiohttp sanic baize tornado muffin emmet quart falcon fastapi django 2.2.5 hackr.io Ter aanvulling selecteren we nog enkele minder gekende frameworks aan de hand van een hackr.io artikel (Vijay Singh, 2022) om toe te voegen aan de initiele lijst: CubicWeb MorePath Dash Pycnic Giotto Pylons Growler TurboGears 2.2.6 finale selectie frameworks Vervolgens bepalen we de full stack frameworks aan de hand van documentatie en houden we enkel de microframeworks over, er is geen nood aan een full stack framework. Ook starlette wordt niet in het onderzoek opgenomen daar FastAPI op starlette gebaseerd werd en de beslissing al reeds gemaakt werd om FastAPI te gebruiken in voorkeur van starlette vanwege de extra features die FastAPI aanbied. Volgens deze criteria worden volgende frameworks geschrapt: requests, faster than requests, pycurl starlette, django, cubicwebm giotto,pylons, pyramid, turbogears, web2py, emmet. Wat in de finale selectie resulteert: Vergelijkende studie tussen FastAPI en andere python REST API microframeworks in de context van het analyseren van e-commerce metrics 3/5 flask bottle cherrypy quart hug eve falcon morepath sanic growler muffin pycnic tornado aiohttp baize / 2.3 beschrijving kandidaat frameworks De API frameworks die beschreven worden zijn allen net als FastAPI micro frameworks, die gelijkaardige functionaliteiten aanbieden. Microframeworks verschillen met full stack frameworks in dat het doorgaans eenvoudiger en sneller is om kleine (REST) applicaties te ontwikkelen (Technolush2019). 2.3.1 Hug Hug is een python web framework met data validatie mogelijkheden aan de hand van ingebouwde en/of zelfgemaakte annotation types. Hug heeft ook integratie voor Marshmellow: een geavanceerde serialisatie, deserialisatie en validatie bibliotheek. De type annotations worden ook gebruikt voor Hugs automatische documentatie generator (Crosley, 2019). Hug is gebouwd bovenop Falcon, een framework die ook vergeleken wordt tijdens dit onderzoek (Falcon Contributors, 2022). Voor de beveiliging van de API heeft Hug een ingebouwd systeem, OAuth 2.0 wordt hier niet gebruikt (Crosley, 2019). Ondersteuning voor python 3. 2.3.2 Sanic Sanic is een Python web framework en heeft als doel HTTP requests snel te kunnen afhandelen (Makai, 2022). Data validatie is mogelijk op twee manieren: met Python Data Classes en Pydantic. Verschillende soorten data kunnen gevalideerd worden: JSON body data, form body data en query parameters (Sanic Community Organization, 2022). HTTP request werken met JSON objecten, bijgevolg is object serialisatie ondersteund (Adhikari, 2021). Ingebouwde ondersteuning voor OAuth 2.0 voor de beveiliging van de API (Sanic contributors, 2018). Ondersteuning voor Python 3.5+. Sanic ondersteund Swagger dus automatische documentatie is mogelijk (Sanic Community Organization, 2022). 2.3.3 Tornado Tornado is een Python web framework en een asynchronous networking library waarmee het mogelijk is om REST API’s bouwen, hoewel het er geen ingebouwde ondersteuning voor aanbiedt. Developers moeten zelf de REST API te bouwen met Tornado. Ondersteuning voor NoSQL databanken is mogelijk via 3rd party tools. Geen ondersteuning voor OAuth 2.0 te gebruiken bij een Tornado API: De authenticatie wordt voorzien door een oplossingen eigen aan het framework of via 3rd party authenticatie providers zoals Google en Facebook (CodeAhoy, g.d.-b). Ondersteuning voor Python 3.5+. 2.3.4 Bottle Bottle is een Python web framework zonder ingebouwde ondersteuning voor het maken van REST API’s, het is wel mogelijk gebruik makende van plugins. Ondersteuning voor NoSQL databanken, kan via een bijkomende library zoals Bottle-Mongo. Authenticatie wordt voorzien met het gebruik van de plugin Bottle-Cork, wat JWT-tokens ondersteund (CodeAhoy, g.d.-a). Een mogelijk nadeel bij Bottle is dat het een geen goede ondersteuning zou bieden voor asynchroon Paper Research Methods: onderzoeksvoorstel programmeren door WSGI te gebruiken om requests af te handelen (Hellkamp, 2022). Ondersteuning voor Python 3. 2.3.5 Flask Flask is een Python web framework die ingebouwde ondersteuning biedt voor het maken van REST API’s en NoSQL databanken. Voor de authenticatie is het mogelijk om Oauth 2.0 toe te voegen aan het project en via andere extensies is het ook mogelijk om JWT-tokens te gebruiken voor de authenticatie (Singhal, 2021). Automatisch documenteren van de API is mogelijk in Flask door gebruik te maken van Flaskapispec, wat verschillende tools toevoegt aan Flask (Carp & contributors, 2018). Het valideren van data kan met verschillende extensies waaronder Flask-WTF, wat ervoor zorgt dat Flask kan samenwerken met WTForms (Hasanov, 2021). Ondersteuning voor Python 3.5+. 2.3.6 BlackSheep Blacksheep is een door Flask en ASP.NET Core geïnspireerd asynchroon python web framework met sterke dependency injection functionaliteiten aan de grondslag, type hint ondersteuning, en geautomatiseerde documentatie generatie. Ondersteuning voor python 3.7+. (Roberto Prevato, 2022) 2.3.7 growler Growler is een python web framework gebaseerd op Asyncio, gelijkaardig aan de node.js library express, en maakt gebruik van een serie aan middlewares om op eenvoudige manier API endpoints te implementeren. Daarnaast maakt het gebruik van decorators op een manier die het mogelijk maakt erg leesbare, herbruikbare code te schrijven. Ondersteuning voor python 3.4+. (Andrew Kubera, 2022) 2.3.8 AioHTTP AioHTTP is een op Asyncio gebaseerd asynchroon python web framework vergelijkbaar met Flask met ondersteuning voor zowel HTTP als WebSockets en de bewering dat callback hell vermeden wordt. Ondersteuning voor python 3.6+. (aitohttp team, 2022) 2.3.9 CherryPy CherryPy is een open source, minimalistich, object-georiënteerd python web framework met bewezen snelheid en stabiliteit. Het bied een flexibek plugin systeem en ingebouwde tools voor session management, authenticatie, testing, code coverage en profiling. Ondersteuning voor python 3.5+. (CherryPy Team, 2022) 2.3.10 Falcon Falcon beweert een razendsnel schaalbaar en stabiel RESTful python web framework te zijn, het wordt gebruikt door onder meer linkedIn en PayPal. Zeer uitbreidbaar met een wiki toegewijd aan het aanbieden van stabiele uitbreidingsmogelijkheden. Ondersteuning voor python 3.5+. (Kurt Griffiths, 2022) 2.3.11 muffin Muffin is een snel lichtgewicht web framework gebouwd rond python 3. Competitieve performantie en support voor websockets, server side events en alle courante python async libraries. Plugin support voor features als OAuth, Babel, MongoDB. (Klenov, 2022) Vergelijkende studie tussen FastAPI en andere python REST API microframeworks in de context van het analyseren van e-commerce metrics 4/5 2.3.12 quart Een framework Gebaseerd op de Asyncio library, streeft om een zo eenvoudig mogelijke weg te bieden naar het implementeren van asynchrone functionaliteit. Interactie met en migrereren van of naar Flask is eenvoudig door een uniforme API tussen de twee. Gebaseerd op python 3.6+. (Philip Jones, 2020) 2.3.13 morepath Een uniek framework met een atypisch model, path en view gebaseerde applicatiestructuur, en uitgebreide ondersteuning voor het gebruik en genereren van hyperlinks. Ondersteuning voor python 3.7+. (Morepath developers, 2016) 2.3.14 pycnic Pycnic is een snel lichtgewicht python web framework voor het ontwikkelen van JSON APIs met een minimum aan tijd en moeite. Ondersteuning voor python 3. (Nullism, 2015) 3. Methodologie We onderscheiden 3 fases binnen de voorgestelde methodologie: De kandidaat frameworks worden eerst getest op performantie, enkel de frameworks die aan de minimum vereisen voldoen gaan door naar de tweede fase om op usability getest te worden. Het beoogde resultaat van dit onderzoek dient niet enkel een verbetering op louter technisch vlak te bekomen, het team van developers die het gaat gebruiken moet ook bereid zijn om er mee te werken. De totale duur van het onderzoek zal lopen ten vroegste van 20/02/2023 en dient geconcludeerd te zijn ten laatste 26/05/203. Voor elke fase wordt een maand en een week voorzien, 3 weken worden behouden voor de derde en laatste fase voor het analyseren van de gegevens, opstellen van een raport en voorbereiden van een presentatie. Ondersteuning voor python 3. 3.1 Fase 1: performantie Performance, load, en stress testen opstellen en uitvoeren: Hiervoor wordt gebruik gemaakt van Apache JMeter , een op Java gebaseerde open source tool gebruikt om APIs te testen die geautomatiseerd API calls uitvoert en testgegevens verzameld. Elk te vergelijken framework wordt volgens dit testplan getest (Apache Software Foundation, 2021). Een identieke geconfigureerde MongoDB NoSQL databank gepopuleerd met identieke testdata wordt ter beschikking gesteld. Concreet worden de te testen API endpoints gespecifieerd en de meest relevante te testen Create Read, Update en Delete bewerkingen bepaald. Er wordt bepaald welk aantal concurrente gebruikers als normale en zware lading beschouwd worden voor de load testen, hoeveel maal en over welke tijdsduur de testen uitgevoerd worden. Acceptatiecriteria vastleggen: de minimumvereiste zal een betere performantie zijn dan vastgelegd met FastAPI als benchmark, of een minimaal afwijkende performantie met betere load of stress resistentie (hoger aantal api calls op eenzelfde moment of over een langere duur voor crash point bereikt wordt). De testen worden uitgevoerd en resultaten verwerkt. Frameworks die voldoen aan de acceptatiecriteria worden in fase 2 aan usability testen onderworpen en gegevens van deze testen worden bewaard voor verwerking in fase 3. Paper Research Methods: onderzoeksvoorstel 3.2 Fase 2: usability Usability testen opstellen en uitvoeren: Voor elk framework die aan de acceptatiecriteria voldoet van de functionele testen Een identieke geconfigureerde MongoDB NoSQL databank gepopuleerd met identieke testdata wordt ter beschikking gesteld. Documentatie van het framework wordt ter beschikking gesteld. Developers van het team die het framework in gebruik zouden nemen indien het resultaat van dit onderzoek positief is krijgen de opdracht voordien gespecifieerde databank bevragingen API endpoints te implementeren. Dit zal niet onder toezicht gebeuren en met een ruime deadline, de bedoeling is dat de developer dit uitvoert volgens zijn persoonlijke voorkeuren en manier van werken. Na afloop van de implementatie wordt een anonieme enquete ingevuld over de persoonlijke indrukken en gebruikservaring specifiek aan het framework volgens de developer in kwestie. Na afloop van alle implementatie opdrachten wordt een interview afgenomen bij de developers, specifiek wordt er getoetst of de developer het aangenaam,vlot en/of logisch werken vond, en wordt er vergeleken met FastAPI en de andere geteste frameworks indien van toepassing. Ook wordt er bevraagd naar de ervaring van de developers met het gebruik van volgende features indien ondersteund door de framework in kwestie en van toepassing bij hun persoonlijke workflow: autocompletion in editor, automatische code refactoring, schrijven van testen, virtual environments, remote machines, debugger, code linting, Issue Trackers, Continuous Integration tools, type hinting, code coverage tool, profiler tool. gebaseerd op een oplijsting van gegeerde features volgens de jetbrains developer survey (JetBrains s.r.o, 2022). 3.3 Fase 3: verwerking Tot slot worden de resultaten van de twee fases samegebracht in een proof of concept rapport en een presentatie voorbereid voor de stakeholders om aan te tonen dat de voorgesteld frameworks aan de performantie en useability requirements voldoen en vervolgens een beslissing kan genomen worden of een overstap naar de nieuwe technologie voldoende waarde zou opleveren. 4. Verwachte conclusies Verwacht wordt dat er geen python gebaseerd web framework bepaald wordt die zodanig performanter is dat het de overhead verantwoord om van technologie te veranderen en codebases aan te passen, dit vanwege het specifieke doel van FastAPI om een zeer snel web framework te bieden met enkel de meest essentiële gebruiksgemak features voor de software developers die het in gebruik nemen aan te bieden. Dit in combinatie met het feit dat FastAPI een relatief jong framework is (2018) die nog steeds actief ontwikkeld wordt (cite dev log), lijkt de kans klein dat er op die korte tijd baanbrekende nieuwe frameworks op de markt zijn gekomen. Waar een grotere kans tot een positief resultaat mogelijk geacht worden zijn de user experience features aangeboden door Vergelijkende studie tussen FastAPI en andere python REST API microframeworks in de context van het analyseren van e-commerce metrics 5/5 de frameworks samen met een vergelijkbaar hoge performantie, welke tot een vlottere en snellere development lifecycle kunnen bijdragen en het team in staat stellen projecten sneller en met minder bugs op te leveren. Het team waartoe de te bekomen resultaten van dit onderzoek zouden dienen nemen alle opportuniteiten om een beter product te bekomen en voert bijgevolg regelmatig dergelijke onderzoeken om up to date te blijven en zeker te zijn dat zij de meest competitieve technologieën aanwenden om succesvolle projecten op te leveren. Bijgevolg zorgt deze mogelijkheid dat de tijd en bronnen toegewezen aan dit onderzoek verantwoord zijn. BlackSheep (Roberto Prevato, 2022) lijkt een veelbelovende kandidaat wegens de combinatie van goed ogende benchmarks en features die grotendeels analoog zijn of een uitbreiding van die aangeboden door FastAPI. De benchmarks dienen echter nog door ons eigen onderzoek bevestigd te worden en de features getest te worden op gebruikerservaring door de developers. Referenties Adhikari, M. (2021, juli 21). Sanic and Data Validation using Pydantic. https://python.plainenglish.io/sanic-anddata-validation-using-pydantic-b0a5fd7ed392 aitohttp team. (2022, mei 30). AIOHTTP documentaion. https: //docs.aiohttp.org/en/stable/ Andrew Kubera. (2022, mei 30). Growler github. https : / / github.com/pyGrowler/Growler Apache Software Foundation. (2021, januari 1). Apache Jmeter documentaion. https://jmeter.apache.org/ Carp, J., & contributors. (2018). Flask-apispec: Auto-documenting REST APIs for Flask. https://flask-apispec.readthedocs. io/en/latest/ CherryPy Team. (2022, mei 30). CherryPy documentation. https://docs.cherrypy.dev/en/latest/ CodeAhoy. (g.d.-a). Compare Bottle and FastAPI. https:// codeahoy.com/compare/bottle-vs-fastapi CodeAhoy. (g.d.-b). Compare Tornado and FastAPI. https: //codeahoy.com/compare/tornado-vs-fastapi Crosley, T. (2019). Hug 2.6.0 documentation. https://doi.org/ Crosley2019 Falcon Contributors. (2022). The Falcon Web Framework. https://doi.org/FalconContributors2022 Hasanov, R. (2021, september 19). Flask Form Validation with Flask-WTF. https://stackabuse.com/flask-formvalidation-with-flask-wtf/ Hellkamp, M. (2022, maart 15). Primer to Asynchronous Applications. https://bottlepy.org/docs/0.12/async.html JetBrains s.r.o. (2022, mei 30). jetbrains python developer ecosystem survey 2021. https://www.jetbrains.com/ lp/devecosystem-2021/python/ Kirill Klenov. (2022, maart 14). Async Python Web Frameworks comparison. https : / / github. com / klen / py frameworks-bench Klenov, K. (2022, mei 30). Muffin github. https://github.com/ klen/muffin Kurt Griffiths. (2022, mei 30). Falcon framework homepage. https://falconframework.org/ Makai, M. (2022, mei 27). Sanic. https://www.fullstackpython. com/sanic.html Paper Research Methods: onderzoeksvoorstel Morepath developers. (2016, januari 1). Morepath: Super powered Python Web Framework. https://morepath. readthedocs.io/en/latest/ Nullism. (2015, mei 1). Pycnic 0.1.9. https://pypi.org/project/ pycnic/ Philip Jones. (2020, januari 1). Quart documentation. https: //pgjones.gitlab.io/quart/ Roberto Prevato. (2022, mei 30). BlackSheep documentation. https://www.neoteroi.dev/blacksheep/ Sanic Community Organization. (2022, mei 24). Sanic Framework Documentation. sanic.dev Sanic contributors. (2018). Sanic Documentation Extensions. https://sanic.readthedocs.io/en/19.3/sanic/ extensions.html Sebastián Ramírez. (2022, april 17). FastAPI 0.75.2 documentation. Verkregen 27 april 2022, van https://fastapi. tiangolo.com/ Shyam Purkayastha. (2022, januari 24). Top 15 Python REST API Frameworks in 2022. https://rapidapi.com/blog/ best-python-api-frameworks/ Singhal, P. (2021, mei 21). How to implement Oauth 2.0 login for Python Flask web server applications. https: //atrium.ai/resources/how-to-implement-oauth-2-0login-for-python-flask-web-server-applications/ Stack Exchange Inc. (2021). 2021 Developer Survey. https: //insights.stackoverflow.com/survey/2021 Vijay Singh. (2022, mei 26). Best Python Frameworks. https: / / hackr . io / blog / python - frameworks / amp # 2 microframework 0 https://github.com/HoGentTIN/rm-2122-paper-rmdemurelvantichelen