/fastapi-example

An example of FastAPI basics

Primary LanguagePythonMIT LicenseMIT

fastapi-example

An example of FastAPI basics

Codacy Badge Codacy Badge

Getting set up

Check the Makefile for useful macros

Using Poetry install dependencies

poetry install
poetry shell

Run migrations

make migrate

Structure

-- .github      : Github Actions defintions
-- alembic      : Database table definitions
-- app
---- api        : Endpoint defintions and routes
---- core       : Configuration management
---- crud       : Tools for performing CRUD ops on various models
---- db         : Boilerplate sqlalchemy set up
---- schemas    : Pydantic definitions for models and API requests/responses
---- tests      : Unit and BDD tests

Build the docker image

make docker-build

Start the docker image

make docker-run

The API will be available at http://localhost (port 80) Docs are at http://localhost/docs

Tests

Run unittests with coverage (in app/tests):

make test-cov

Or with pytest-watch to rerun tests every time a change is made:

make test-watch

Run Behave tests (in app/tests/features):

make bdd

Linting

You can check if your code is up to scratch:

make lint

Fix it automatically:

make format-imports