|
|
@ -152,6 +152,7 @@ async def serialize_response( |
|
|
|
exclude_defaults: bool = False, |
|
|
|
exclude_none: bool = False, |
|
|
|
is_coroutine: bool = True, |
|
|
|
context: Optional[Dict[str, Any]] = None, |
|
|
|
) -> Any: |
|
|
|
if field: |
|
|
|
errors = [] |
|
|
@ -187,6 +188,7 @@ async def serialize_response( |
|
|
|
exclude_unset=exclude_unset, |
|
|
|
exclude_defaults=exclude_defaults, |
|
|
|
exclude_none=exclude_none, |
|
|
|
context=context, |
|
|
|
) |
|
|
|
|
|
|
|
return jsonable_encoder( |
|
|
@ -227,6 +229,7 @@ def get_request_handler( |
|
|
|
response_model_exclude_unset: bool = False, |
|
|
|
response_model_exclude_defaults: bool = False, |
|
|
|
response_model_exclude_none: bool = False, |
|
|
|
response_model_context: Optional[Dict[str, Any]] = None, |
|
|
|
dependency_overrides_provider: Optional[Any] = None, |
|
|
|
embed_body_fields: bool = False, |
|
|
|
) -> Callable[[Request], Coroutine[Any, Any, Response]]: |
|
|
@ -335,6 +338,7 @@ def get_request_handler( |
|
|
|
exclude_defaults=response_model_exclude_defaults, |
|
|
|
exclude_none=response_model_exclude_none, |
|
|
|
is_coroutine=is_coroutine, |
|
|
|
context=response_model_context, |
|
|
|
) |
|
|
|
response = actual_response_class(content, **response_args) |
|
|
|
if not is_body_allowed_for_status_code(response.status_code): |
|
|
@ -450,6 +454,7 @@ class APIRoute(routing.Route): |
|
|
|
response_model_exclude_unset: bool = False, |
|
|
|
response_model_exclude_defaults: bool = False, |
|
|
|
response_model_exclude_none: bool = False, |
|
|
|
response_model_context: Optional[Dict[str, Any]] = None, |
|
|
|
include_in_schema: bool = True, |
|
|
|
response_class: Union[Type[Response], DefaultPlaceholder] = Default( |
|
|
|
JSONResponse |
|
|
@ -480,6 +485,7 @@ class APIRoute(routing.Route): |
|
|
|
self.response_model_exclude_unset = response_model_exclude_unset |
|
|
|
self.response_model_exclude_defaults = response_model_exclude_defaults |
|
|
|
self.response_model_exclude_none = response_model_exclude_none |
|
|
|
self.response_model_context = response_model_context |
|
|
|
self.include_in_schema = include_in_schema |
|
|
|
self.response_class = response_class |
|
|
|
self.dependency_overrides_provider = dependency_overrides_provider |
|
|
@ -582,6 +588,7 @@ class APIRoute(routing.Route): |
|
|
|
response_model_exclude_unset=self.response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=self.response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=self.response_model_exclude_none, |
|
|
|
response_model_context=self.response_model_context, |
|
|
|
dependency_overrides_provider=self.dependency_overrides_provider, |
|
|
|
embed_body_fields=self._embed_body_fields, |
|
|
|
) |
|
|
@ -901,6 +908,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset: bool = False, |
|
|
|
response_model_exclude_defaults: bool = False, |
|
|
|
response_model_exclude_none: bool = False, |
|
|
|
response_model_context: Optional[Dict[str, Any]] = None, |
|
|
|
include_in_schema: bool = True, |
|
|
|
response_class: Union[Type[Response], DefaultPlaceholder] = Default( |
|
|
|
JSONResponse |
|
|
@ -951,6 +959,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema and self.include_in_schema, |
|
|
|
response_class=current_response_class, |
|
|
|
name=name, |
|
|
@ -982,6 +991,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset: bool = False, |
|
|
|
response_model_exclude_defaults: bool = False, |
|
|
|
response_model_exclude_none: bool = False, |
|
|
|
response_model_context: Optional[Dict[str, Any]] = None, |
|
|
|
include_in_schema: bool = True, |
|
|
|
response_class: Type[Response] = Default(JSONResponse), |
|
|
|
name: Optional[str] = None, |
|
|
@ -1012,6 +1022,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema, |
|
|
|
response_class=response_class, |
|
|
|
name=name, |
|
|
@ -1320,6 +1331,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=route.response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=route.response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=route.response_model_exclude_none, |
|
|
|
response_model_context=route.response_model_context, |
|
|
|
include_in_schema=route.include_in_schema |
|
|
|
and self.include_in_schema |
|
|
|
and include_in_schema, |
|
|
@ -1618,6 +1630,21 @@ class APIRouter(routing.Router): |
|
|
|
""" |
|
|
|
), |
|
|
|
] = False, |
|
|
|
response_model_context: Annotated[ |
|
|
|
Optional[Dict[str, Any]], |
|
|
|
Doc( |
|
|
|
""" |
|
|
|
Additional context to pass to Pydantic when creating the response. |
|
|
|
|
|
|
|
This will be passed in as serialization context to the response model. |
|
|
|
|
|
|
|
Note: This feature is a noop on pydantic < 2.8 |
|
|
|
|
|
|
|
Read more about serialization context in the |
|
|
|
[Pydantic documentation](https://docs.pydantic.dev/latest/concepts/serialization/#serialization-context) |
|
|
|
""" |
|
|
|
), |
|
|
|
] = None, |
|
|
|
include_in_schema: Annotated[ |
|
|
|
bool, |
|
|
|
Doc( |
|
|
@ -1733,6 +1760,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema, |
|
|
|
response_class=response_class, |
|
|
|
name=name, |
|
|
@ -1995,6 +2023,21 @@ class APIRouter(routing.Router): |
|
|
|
""" |
|
|
|
), |
|
|
|
] = False, |
|
|
|
response_model_context: Annotated[ |
|
|
|
Optional[Dict[str, Any]], |
|
|
|
Doc( |
|
|
|
""" |
|
|
|
Additional context to pass to Pydantic when creating the response. |
|
|
|
|
|
|
|
This will be passed in as serialization context to the response model. |
|
|
|
|
|
|
|
Note: This feature is a noop on pydantic < 2.8 |
|
|
|
|
|
|
|
Read more about serialization context in the |
|
|
|
[Pydantic documentation](https://docs.pydantic.dev/latest/concepts/serialization/#serialization-context) |
|
|
|
""" |
|
|
|
), |
|
|
|
] = None, |
|
|
|
include_in_schema: Annotated[ |
|
|
|
bool, |
|
|
|
Doc( |
|
|
@ -2115,6 +2158,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema, |
|
|
|
response_class=response_class, |
|
|
|
name=name, |
|
|
@ -2377,6 +2421,21 @@ class APIRouter(routing.Router): |
|
|
|
""" |
|
|
|
), |
|
|
|
] = False, |
|
|
|
response_model_context: Annotated[ |
|
|
|
Optional[Dict[str, Any]], |
|
|
|
Doc( |
|
|
|
""" |
|
|
|
Additional context to pass to Pydantic when creating the response. |
|
|
|
|
|
|
|
This will be passed in as serialization context to the response model. |
|
|
|
|
|
|
|
Note: This feature is a noop on pydantic < 2.8 |
|
|
|
|
|
|
|
Read more about serialization context in the |
|
|
|
[Pydantic documentation](https://docs.pydantic.dev/latest/concepts/serialization/#serialization-context) |
|
|
|
""" |
|
|
|
), |
|
|
|
] = None, |
|
|
|
include_in_schema: Annotated[ |
|
|
|
bool, |
|
|
|
Doc( |
|
|
@ -2497,6 +2556,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema, |
|
|
|
response_class=response_class, |
|
|
|
name=name, |
|
|
@ -2759,6 +2819,21 @@ class APIRouter(routing.Router): |
|
|
|
""" |
|
|
|
), |
|
|
|
] = False, |
|
|
|
response_model_context: Annotated[ |
|
|
|
Optional[Dict[str, Any]], |
|
|
|
Doc( |
|
|
|
""" |
|
|
|
Additional context to pass to Pydantic when creating the response. |
|
|
|
|
|
|
|
This will be passed in as serialization context to the response model. |
|
|
|
|
|
|
|
Note: This feature is a noop on pydantic < 2.8 |
|
|
|
|
|
|
|
Read more about serialization context in the |
|
|
|
[Pydantic documentation](https://docs.pydantic.dev/latest/concepts/serialization/#serialization-context) |
|
|
|
""" |
|
|
|
), |
|
|
|
] = None, |
|
|
|
include_in_schema: Annotated[ |
|
|
|
bool, |
|
|
|
Doc( |
|
|
@ -2874,6 +2949,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema, |
|
|
|
response_class=response_class, |
|
|
|
name=name, |
|
|
@ -3136,6 +3212,21 @@ class APIRouter(routing.Router): |
|
|
|
""" |
|
|
|
), |
|
|
|
] = False, |
|
|
|
response_model_context: Annotated[ |
|
|
|
Optional[Dict[str, Any]], |
|
|
|
Doc( |
|
|
|
""" |
|
|
|
Additional context to pass to Pydantic when creating the response. |
|
|
|
|
|
|
|
This will be passed in as serialization context to the response model. |
|
|
|
|
|
|
|
Note: This feature is a noop on pydantic < 2.8 |
|
|
|
|
|
|
|
Read more about serialization context in the |
|
|
|
[Pydantic documentation](https://docs.pydantic.dev/latest/concepts/serialization/#serialization-context) |
|
|
|
""" |
|
|
|
), |
|
|
|
] = None, |
|
|
|
include_in_schema: Annotated[ |
|
|
|
bool, |
|
|
|
Doc( |
|
|
@ -3251,6 +3342,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema, |
|
|
|
response_class=response_class, |
|
|
|
name=name, |
|
|
@ -3513,6 +3605,21 @@ class APIRouter(routing.Router): |
|
|
|
""" |
|
|
|
), |
|
|
|
] = False, |
|
|
|
response_model_context: Annotated[ |
|
|
|
Optional[Dict[str, Any]], |
|
|
|
Doc( |
|
|
|
""" |
|
|
|
Additional context to pass to Pydantic when creating the response. |
|
|
|
|
|
|
|
This will be passed in as serialization context to the response model. |
|
|
|
|
|
|
|
Note: This feature is a noop on pydantic < 2.8 |
|
|
|
|
|
|
|
Read more about serialization context in the |
|
|
|
[Pydantic documentation](https://docs.pydantic.dev/latest/concepts/serialization/#serialization-context) |
|
|
|
""" |
|
|
|
), |
|
|
|
] = None, |
|
|
|
include_in_schema: Annotated[ |
|
|
|
bool, |
|
|
|
Doc( |
|
|
@ -3633,6 +3740,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema, |
|
|
|
response_class=response_class, |
|
|
|
name=name, |
|
|
@ -3895,6 +4003,21 @@ class APIRouter(routing.Router): |
|
|
|
""" |
|
|
|
), |
|
|
|
] = False, |
|
|
|
response_model_context: Annotated[ |
|
|
|
Optional[Dict[str, Any]], |
|
|
|
Doc( |
|
|
|
""" |
|
|
|
Additional context to pass to Pydantic when creating the response. |
|
|
|
|
|
|
|
This will be passed in as serialization context to the response model. |
|
|
|
|
|
|
|
Note: This feature is a noop on pydantic < 2.8 |
|
|
|
|
|
|
|
Read more about serialization context in the |
|
|
|
[Pydantic documentation](https://docs.pydantic.dev/latest/concepts/serialization/#serialization-context) |
|
|
|
""" |
|
|
|
), |
|
|
|
] = None, |
|
|
|
include_in_schema: Annotated[ |
|
|
|
bool, |
|
|
|
Doc( |
|
|
@ -4015,6 +4138,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema, |
|
|
|
response_class=response_class, |
|
|
|
name=name, |
|
|
@ -4277,6 +4401,21 @@ class APIRouter(routing.Router): |
|
|
|
""" |
|
|
|
), |
|
|
|
] = False, |
|
|
|
response_model_context: Annotated[ |
|
|
|
Optional[Dict[str, Any]], |
|
|
|
Doc( |
|
|
|
""" |
|
|
|
Additional context to pass to Pydantic when creating the response. |
|
|
|
|
|
|
|
This will be passed in as serialization context to the response model. |
|
|
|
|
|
|
|
Note: This feature is a noop on pydantic < 2.8 |
|
|
|
|
|
|
|
Read more about serialization context in the |
|
|
|
[Pydantic documentation](https://docs.pydantic.dev/latest/concepts/serialization/#serialization-context) |
|
|
|
""" |
|
|
|
), |
|
|
|
] = None, |
|
|
|
include_in_schema: Annotated[ |
|
|
|
bool, |
|
|
|
Doc( |
|
|
@ -4397,6 +4536,7 @@ class APIRouter(routing.Router): |
|
|
|
response_model_exclude_unset=response_model_exclude_unset, |
|
|
|
response_model_exclude_defaults=response_model_exclude_defaults, |
|
|
|
response_model_exclude_none=response_model_exclude_none, |
|
|
|
response_model_context=response_model_context, |
|
|
|
include_in_schema=include_in_schema, |
|
|
|
response_class=response_class, |
|
|
|
name=name, |
|
|
|