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
Generated project example
✅ 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
Generateto 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastapi_forge-0.8.1.tar.gz.
File metadata
- Download URL: fastapi_forge-0.8.1.tar.gz
- Upload date:
- Size: 123.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2de9363080ebe0a8efd57384a921be75c5c396d1913a759a7b6311e4c4ffb843
|
|
| MD5 |
d53eb2cd0e25fe705ed7f4a24cd663cf
|
|
| BLAKE2b-256 |
ce11631f3d4faf5d10e18c56b07213e8817aa4a4d60346d409d6a767312dbc04
|
File details
Details for the file fastapi_forge-0.8.1-py3-none-any.whl.
File metadata
- Download URL: fastapi_forge-0.8.1-py3-none-any.whl
- Upload date:
- Size: 87.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1741498f65d540743933a12d83070d85ab183e3b30a1d15d58d574b12ff91373
|
|
| MD5 |
0630801665abb8d3883f58aae7777a58
|
|
| BLAKE2b-256 |
5694abd6513b6d57efe7aea55607103f4cab286d381b640fa179b21b05a71849
|