Skip to main content

FastAPI integration for didactic Models.

Project description

didactic-fastapi

FastAPI integration for dx.Model types. Contributes didactic.fastapi to the namespace package.

Install

pip install didactic-fastapi

The package depends on didactic, didactic-pydantic, and fastapi>=0.115.

Usage

import didactic.api as dx
from fastapi import FastAPI
from didactic.fastapi import as_response, register_validation_handler


class User(dx.Model):
    id: str
    email: str


app = FastAPI()
register_validation_handler(app)


@app.get("/users/{uid}", response_model=as_response(User))
def get_user(uid: str) -> User:
    return User(id=uid, email="ada@example.org")

as_response(model) returns a pydantic.BaseModel subclass mirroring the input dx.Model. FastAPI uses the result for response validation and OpenAPI generation. The conversion is cached per input class.

as_request(model) is a synonym; use whichever name reads naturally in your route signatures.

register_validation_handler(app) installs an exception handler so that dx.ValidationError raised inside a route surfaces as a 422 response shaped like FastAPI's own validation errors.

Documentation

See Guides > FastAPI for the full integration guide and caveats.

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

didactic_fastapi-0.1.0.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

didactic_fastapi-0.1.0-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file didactic_fastapi-0.1.0.tar.gz.

File metadata

  • Download URL: didactic_fastapi-0.1.0.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for didactic_fastapi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bf0690a5df5e01a991959c7030f0606644eaf8a85bb9217451cd722a698f281d
MD5 7e3f876986901dc32f09ea91234358e1
BLAKE2b-256 b806eddc428113642037be5ea0e3a1d7d101855f6ca7f0c335a7974d426429ea

See more details on using hashes here.

File details

Details for the file didactic_fastapi-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: didactic_fastapi-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for didactic_fastapi-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20779f8bf6add80a6ba9f1aa5d60a4a646c2aa444278320efee44d5b06886949
MD5 8dc9121880410004f08733d278fcf6b4
BLAKE2b-256 2a86b5d6eab9ea1eae90e415f73520de6f6c0ed04ab5a805b15b3a92e37f6530

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page