Antler by Autoflux

Configuration

How an application, its routers, middleware, lifespan, and settings are actually assembled.

Path: configuration

Third-party documentation. This is independently authored analysis of the public FastAPI codebase — not the official docs, and not reviewed or endorsed by the FastAPI team.

Configuration

Application instance

A FastAPI app is created with FastAPI(...), accepting metadata (title, version, description) that flows directly into the generated OpenAPI schema, plus operational settings like docs_url, redoc_url, and openapi_url — any of which can be disabled entirely by passing None.

Routers

Larger applications are composed from multiple APIRouter instances, each independently testable, then mounted onto the main app with app.include_router(router, prefix="/items", tags=["items"]).

Middleware and CORS

Because FastAPI apps are Starlette apps, all of Starlette's ASGI middleware works unmodified — including CORSMiddleware, the standard way to configure cross-origin access.

Lifespan events

Startup/shutdown logic (opening a database pool, warming a cache) is expressed as an async context manager passed to FastAPI(lifespan=...), which has replaced the older @app.on_event("startup") decorators.

Settings management

The companion library pydantic-settings lets configuration be declared the same way as any other Pydantic model, reading from environment variables (and .env files) with the same validation guarantees as a request body.