bseth15 / blue-fish

MIT License
0 stars 0 forks source link

Research back-end API Technology #2

Open bseth15 opened 3 years ago

bseth15 commented 3 years ago

Research and select a technology to use for the applications back-end API. Document the chosen technology and any major related technologies within the repositories Wiki pages. Include versions so that they can be locked down in the relevant configuration files.

bseth15 commented 3 years ago

I want to use Python 3.10 for the back-end language and chosen FastAPI versoin 0.70.0 as the framework. https://fastapi.tiangolo.com/

FastAPI is an asynchronous framework designed to compete with nodejs in performance. It is also built to the OpenAPI which provides API documentation via Swagger and/or Redoc.

FastAPI uses only modern Python type declarations so there is no new syntax to learn. Type declerations are required for validation within FastAPI, and have the added benefit of enabling IDE integrations such as auto-completion.

Full support for modern security mechanism such as OAuth2 with JWT

FastAPI is a superset of Starlette: https://www.starlette.io/ Pydantic is a Python package that FastAPI uses for schema definition/validation https://pydantic-docs.helpmanual.io/

FastAPI supports ASGI web-servers with the recommended being uvicorn, an asynchronous web-server by gunicorn that primarily relies on the uvloop asynchronous IO python package.

Full list of features: https://fastapi.tiangolo.com/features/