v0.1.1
Why Choose FastAPI Route?
FastAPI Route reimagines how you build APIs with FastAPI. Instead of writing decorators for every endpoint, you organize your code using files and folders. The result is cleaner, more maintainable, and more intuitive code.
Zero Boilerplate
Standard FastAPI requires you to write decorators for every single endpoint:
@app.get("/users")
@app.post("/users")
@app.get("/users/{user_id}")
@app.put("/users/{user_id}")
@app.delete("/users/{user_id}")With FastAPI Route, you create files and folders. The routes are automatic:
routes/
├── users/
│ ├── route.py # GET /users, POST /users
│ └── [user_id]/
│ └── route.py # GET /users/{user_id}, PUT /users/{user_id}, DELETE /users/{user_id}No decorators. No registration. Just files.
Intuitive File-Based Routing
The same file-based routing philosophy applies:
index.pybecomes the root route (/)- Folders become URL segments
[param]folders create dynamic parameters(group)folders organize code without affecting URLs
This intuitive approach means frontend developers can build APIs without learning new routing patterns.
10x Faster Production Startup
Standard FastAPI scans all your route files on every startup. For large projects with hundreds of routes, this adds significant startup time.
FastAPI Route pre-compiles your routes into an optimized build cache:
fastapi-route build # Scans and compresses routes once
fastapi-route run # Loads from cache - 5-10x fasterCompression typically reduces route metadata by 70%, and loading from cache is dramatically faster than scanning the filesystem.
Beautiful Error Pages
When something breaks in development, FastAPI Route shows you exactly what went wrong:
- The exact file and line number
- The problematic code with syntax highlighting
- The full traceback filtered to show only user code
- Helpful suggestions for fixing the issue
Instead of staring at raw tracebacks, you get actionable error messages.
Simple Middleware
Adding middleware in standard FastAPI requires decorators and understanding FastAPI's middleware system.
FastAPI Route uses a single middleware.py file:
# middleware.py
from fastapi_route import Request
async def middleware(request: Request, call_next):
# Runs before every request
print(f"{request.method} {request.path}")
response = await call_next(request)
# Runs after every request
response.headers["X-Powered-By"] = "FastAPI Route"
return responseThis pattern works for authentication, logging, rate limiting, and any cross-cutting concern.
Production-Tested Features
FastAPI Route includes features designed for production environments:
Build Cache - Routes are pre-compressed and optionally encrypted. Production startup is fast and consistent.
Compression Levels - Choose between faster builds (level 1) or smaller caches (level 9). Default level 6 balances both.
Worker Support - Configure multiple worker processes in config.py for CPU-bound workloads.
Production Logging - Automatically reduces log noise in production (only warnings and errors).
Fully Customizable
FastAPI Route gives you complete control when you need it:
- Custom documentation - Replace
/docswith your own design usingdocs.py - Custom 404 pages - Branded error pages with
not-found.py - Custom middleware - Authentication, logging, rate limiting in one file
- Advanced configuration - Server settings, logging levels, build options
- Custom CLI commands - Project-specific shortcuts
You get sensible defaults that work out of the box, but nothing stops you from customizing everything.
Type Safe
FastAPI Route is fully typed. Your IDE knows about every class, method, and parameter:
- Autocompletion for request properties
- Type checking for dynamic route parameters
- Validation for configuration options
def GET(request: Request, user_id: int): # IDE knows user_id is int
name = request.query_params.get("name") # IDE knows query_params is dict
return {"user_id": user_id, "name": name}Auto Documentation
FastAPI Route automatically generates interactive API documentation at /docs. The docs include:
- All routes with their HTTP methods
- Dynamic parameter detection
- Query parameter extraction from docstrings
- Route statistics and method distribution
You get professional documentation without writing any additional code.
When to Choose FastAPI Route
FastAPI Route is the right choice when:
You want file-based routing - You prefer organizing code by URL structure rather than by feature.
You prefer convention over configuration - You want sensible defaults that work without setup.
You need faster production startup - Your project has many routes and startup time matters.
You want beautiful error pages by default - You'd rather see helpful error messages than raw tracebacks.
You want simple middleware setup - You want authentication and logging without decorators.
You're building a large API - File-based routing scales better than decorator-based routing for hundreds of endpoints.
The Bottom Line
FastAPI Route is FastAPI, but with file-based routing. You get all the power of FastAPI (async support, dependency injection, OpenAPI docs) with a more intuitive, file-based routing system.
If you love FastAPI but wish routes were defined by files instead of decorators, FastAPI Route is for you.
Next Steps
- Getting Started - Learn the basics of FastAPI Route
- Quick Start - Build your first API in minutes
- Installation - Install FastAPI Route in your project