- FastAPI for service creation
- Uvicorn ASGI server for local development, Mangum for deploying to AWS Lambda
- SQLAlchemy & Alembic for ORM/database migrations
- Default database dialect is MySQL but easily configurable to use Postgres, etc.
- Uses AWS Cognito for Auth - decodes JWT tokens from Cognito. Easily configured to decode tokens generated elsewhere.
-
Install poetry, used for managing dependencies and virtual environments.
-
Install cookiecutter on your machine:
$ pip install cookiecutter
-
Run cookiecutter to clone the project to your current director:
$ cookiecutter https://github.com/rwhitten577/fast-api-starter-kit.git
-
Follow prompts to name your project.
git_repo_name
should be what your future repo will be (using dashes), and project_name will be used to name your Python package (using underscores).git_repo_name [example-repo-name-using-dashes]: your-repo-name-here project_name [example_project_name_using_underscores]: your_project_name
-
CD to your new project and install dependencies with
poetry install
. -
Run tests with
pytest
.