Add type hints support to Falcon with Pydantic and Marshmallow integration
Project description
Falcon typing
Use type hints to specify request parameters with Marshmallow and Pydantic support.
**Uses typedjson
Example
"""API.""" from typing import Optional, Union from pydantic import BaseModel as PydanticModel from falcontyping import TypedAPI, TypedResource class UserV1(PydanticModel): username: str class UserV2(PydanticModel): username: str balance: float class UsersResource(TypedResource): def on_post(self, request, response, user: Union[UserV2, UserV1]) -> Union[UserV2, UserV1]: if isinstance(user, UserV2): return UserV2(username=user.username, balance=user.balance) else: return UserV1(username=user.username) class UserDetailsResource(TypedResource): def on_get(self, request, response, user_id: int) -> Optional[Union[UserV2, UserV1]]: if user_id == 2: return UserV2(username='user', balance=0.0) if user_id == 1: return UserV1(username='user') return None API = TypedAPI() API.add_route('/users', UserResource()) API.add_route('/users/{user_id}', UserDetailsResource())
How to install
pip install falcontyping
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
falcontyping-0.7.0.tar.gz
(9.4 kB
view hashes)
Built Distribution
Close
Hashes for falcontyping-0.7.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 152b7794e2091e5560a0b4db4957af17ec9610dd6c96a8698cdd3e75248f4154 |
|
MD5 | 0ba6d6439e4252d53b60472c50450da4 |
|
BLAKE2-256 | f3541e9b8fc69928b227342ace7cee703b2f9ee5a866edb00f5d5a7c7d37b198 |