/fastapi_example

A demonstration of best practices for a large FastAPI project

Primary LanguagePython

Example of a scalable FastAPI

The site

A sample project showing how to build a scalable, maintainable, modular FastAPI with a heavy emphasis on testing.

This is an example project using the structure proposed in this blog post., but with FastApi instead of Flask.

Running the app

Preferably, first create a virtualenv and activate it, perhaps with the following command:

virtualenv -p python3 venv
source venv/bin/activate

Next, run

pip install -r requirements.txt

to get the dependencies.

Next, initialize the database

invoke seed-db

Type "Y" to accept the message (which is just there to prevent you accidentally deleting things -- it's just a local SQLite database)

Finally run the app with

uvicorn wsgi.py

Navigate to http://127.0.0.1:8000/docs to be greeted with Swagger, where you can test out the API.

Running tests

To run the test suite, simply pip install it and run from the root directory like so

pip install pytest
pytest

Running via docker-compose

docker-compose up