๐งฉ openapi-first โ OpenAPI as the Single Source of Truth
openapi-first is a small, strict library for OpenAPI-first FastAPI bootstrapping: the OpenAPI document is the application contract โ not an afterthought generated from decorators)Skip. Routes, schemas, security, and even the HTTP client are all derived from one specification.
Doc model: this wiki is written for humans โ how-to guides, examples, and usage recipes. The authoritative API contracts live in the code (docstrings) and the machine-readable bundle under
docs/mcp/.
๐ Key Features
- ๐ One spec, two sides โ the same OpenAPI document boots both a FastAPI server (
OpenAPIFirstApp) and a strict HTTP client (OpenAPIClient) - ๐
operationIdbinding โ handler functions are bound to routes purely byoperationId; no routing decorators - ๐งฑ Fail-fast contracts โ startup and client construction fail loudly when a handler, operation, or security scheme is missing
- ๐ก๏ธ Spec-driven security โ
securitySchemes+ per-operationsecurityauto-injected as FastAPI dependencies (Bearer JWT introspection included) - ๐ง Contract-first codegen โ
models(Pydantic) androutes(resource stubs) generated from a spec - ๐งฉ Bundled templates โ
health_app,crud_app,model_app,vet_appscaffolds for the whole lifecycle, from/healthto SSE + multi-resource CRUD
๐ฆ Installation
From your internal PyPI:
From local source:
๐ Documentation Structure
| Section | Description |
|---|---|
| Overview | The mental model: spec as contract, operationId binding, fail-fast guarantees |
| Components | app, binder, loader, client, errors, security, codegen, cli |
| Use cases | Step-by-step recipes |
| ยท 01 โ Quickstart | Scaffold your first OpenAPI-first service |
| ยท 02 โ Templates | The bundled application templates and how to use them |
| ยท 03 โ Client setup | Build an operationId-driven HTTP client |
| ยท 04 โ Codegen | Generate Pydantic models and route stubs from a spec |
| Design | Architecture, responsibilities, and startup pipeline |
| Security | securitySchemes, env resolution, and JWT introspection |
| Error Handling | The error hierarchy and when each error is raised |
| Testing | Test strategy, quality gates, and coverage |
๐ Related Resources
- Source Code: Gitea Repository
- Internal PyPI: pip.aetoskia.com/simple/openapi-first
- Drone CI: Auto-builds and publishes tagged releases, gated on black / ruff / mypy / pytest.
ยฉ Aetoskia Internal โ openapi-first 0.0.6