didactic-fastapi
didactic-fastapi adapts dx.Model classes for FastAPI request validation,
response validation, and OpenAPI generation. It adds the didactic.fastapi
module and uses didactic-pydantic at the framework boundary.
Install
pip install didactic-fastapi
The distribution depends on didactic, didactic-pydantic, and
fastapi>=0.115.
Use a Didactic response model
import didactic.api as dx
from didactic.fastapi import as_response, register_validation_handler
from fastapi import FastAPI
class User(dx.Model):
id: str
email: str
app = FastAPI()
register_validation_handler(app)
@app.get("/users/{user_id}", response_model=as_response(User))
def get_user(user_id: str) -> User:
return User(id=user_id, email="ada@example.org")
as_response(User) returns a cached pydantic.BaseModel subclass that mirrors
User. FastAPI uses that class for validation and OpenAPI generation.
Adapter behavior
| Function | Behavior |
|---|---|
as_response(model) |
returns the generated Pydantic class for a response model |
as_request(model) |
returns the same adapter under a request-oriented name |
register_validation_handler(app) |
converts dx.ValidationError raised in a route into a FastAPI-style 422 response |
Models with dx.indexed_by fields retain their cross-field validation. Their
known index cases also appear as conditional constraints in the generated
OpenAPI schema.
Documentation
See the FastAPI guide for request models, response models, error handling, and integration limits.
License
Released under the MIT License.
Metadata
Release files for didactic-fastapi 0.17.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| didactic_fastapi-0.17.0.tar.gz | 3.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| didactic_fastapi-0.17.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.7 kB
Release files / didactic_fastapi-0.17.0.tar.gz
| Download URL | didactic_fastapi-0.17.0.tar.gz |
|---|---|
| Size | 3.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b95af67fb8fd3b2010e25585b8c2f9e6576c09f9c81b55838dd3dbed05ace248
|
|
BLAKE2b-256 checksum How to use checksums |
aa66065a1a138695fa714ef7cfa62ee10e7517b335bcdf27fcc483962e332b96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / didactic_fastapi-0.17.0-py3-none-any.whl
| Download URL | didactic_fastapi-0.17.0-py3-none-any.whl |
|---|---|
| Size | 4.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6c6ed2a78bfca0b35caf5e3eb24cbc3d9b1f73c25049958b26cd797521ca69a7
|
|
BLAKE2b-256 checksum How to use checksums |
312432a8827cb49f05dbdc342e42a747572c076b05afbfaea1654903fd1dd64e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency log