Skip to main content

Generate FastAPI projects based on database schema.

Project description

🚀 FastAPI-Forge

⚡ UI Based FastAPI Project Generator

Define your database models through a UI, select services, and get a complete production-ready containerized project with tests and endpoints!

🔥 Features

🖌️ UI Power

  • 🖥️ NiceGUI-based interface for project design
  • 📊 Visual model creation and configuration
  • ✅ Checkbox additional services to be integrated
  • 🚀 Quick-add common fields
  • ⚙️ One-click project generation

⚡ Auto-Generated Components

  • 🗄️ SQLAlchemy Models
  • 📦 Pydantic Schemas
  • 🌐 RESTful Endpoints (CRUD + more)
  • 🧪 Comprehensive Test Suite (pytest)
  • 🏗️ DAOs (Database Access Objects)
  • 🏭 Factory Boy Test Factories
  • 🐳 Docker Compose Setup

🎛️ Advanced Features

  • 🎚️ Custom Enum support as data types
  • 📥 YAML project import/export
  • 🐘 Convert existing databases into FastAPI projects via connection string!
    • Basically lets you quickly create an API for any database.

🔄 CI/CD Automation

  • ⚙️ GitHub Workflows for automated testing and linting
    • 🧪 Runs pytest suite
    • ✨ Executes code formatting checks
    • ✅ Ensures code quality before merging

🧩 Optional Integrations

Category Technologies
Messaging RabbitMQ
Caching Redis
Task Queues Celery, TaskIQ
Auth JWT Authentication
Monitoring Prometheus
Storage S3
Migrations Alembic

Much more to come!

UI for designing your API projects

UI Interface

Generated project example

Generated Project Structure

✅ Requirements

  • Python 3.12+
  • UV
  • Docker and Docker Compose (for running the generated project)

🚀 Quick Start

Install FastAPI-Forge:

pip install fastapi-forge

🛠 Usage

Start the project generation process:

fastapi-forge start
  • A web browser will open automatically.
  • Define your database schema and service specifications.
  • Once done, click Generate to build your API.

To start the generated project and its dependencies in Docker:

make up # Builds and runs your project along with additional services
  • The project will run using Docker Compose, simplifying your development environment.
  • Access the SwaggerUI/OpenAPI docs at: http://localhost:8000/docs.

⚙️ Command Options

Customize your project generation with these options:

--use-example

Quickly spin up a project using one of FastAPI-Forge’s prebuilt example templates:

fastapi-forge start --use-example

--no-ui

Skip the web UI and generate your project directly from the terminal:

fastapi-forge start --no-ui

--from-yaml

Load a custom YAML configuration (can be generated through the UI):

fastapi-forge start --from-yaml=~/path/to/config.yaml

--conn-string

Load an existing Postgres database schema:

fastapi-forge start --conn-string=postgres://user:pass@localhost/db_name

Combine Options

Load a YAML config and skip the UI:

fastapi-forge start --from-yaml=~/Documents/project-config.yaml --no-ui

🧰 Using the Makefile

The generated project includes a Makefile to simplify common dev tasks:

Start the Application

make up

Run Tests

Tests are automatically generated based on your schema. Once the app is running (make up):

make test

Run Specific Tests

make test-filter filter="test_name"

Format and Lint Code

Keep your code clean and consistent:

make lint

📦 Database Migrations with Alembic

If you chose Alembic for migrations during project setup, these commands will help manage your database schema:

Generate a New Migration

make mig-gen name="add_users_table"

Apply All Migrations

make mig-head

Apply the Next Migration

make mig-up

Roll Back the Last Migration

make mig-down

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_forge-0.8.2.tar.gz (125.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_forge-0.8.2-py3-none-any.whl (88.0 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_forge-0.8.2.tar.gz.

File metadata

  • Download URL: fastapi_forge-0.8.2.tar.gz
  • Upload date:
  • Size: 125.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for fastapi_forge-0.8.2.tar.gz
Algorithm Hash digest
SHA256 f1c1fb3bb00f1779c388531be74e53373e6086440ef3189e93f39ee84b24276b
MD5 2ee3b18d6606ee4ad69de21cae3e76e3
BLAKE2b-256 8b26de148d455c37b7fdbc553fe9f8a60267ba8973aaa679a32a60b7cd070efd

See more details on using hashes here.

File details

Details for the file fastapi_forge-0.8.2-py3-none-any.whl.

File metadata

  • Download URL: fastapi_forge-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 88.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for fastapi_forge-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dcc2f1662a469c95bd3abe0f3759d15c1ba75bea8d014b87d9700945ad4df8fc
MD5 68b78d6e8da5e2800db82ce4a88202ee
BLAKE2b-256 cb41badc4377379084b47281eb435d2b6a2cbf9d68447ff58106449e98095479

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page