Uploaded by hirela2974

DeMurelVanTichelenRM2022

advertisement
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
Download