Browse Source

Refine response model inference logic in APIRoute

- Updated the response model inference to handle cases where the model is None or not a subclass of BaseModel or a dataclass.
- Enhanced the logic to infer the response model from the endpoint function's source code when necessary, improving schema generation accuracy.
pull/14446/head
g7azazlo 8 months ago
parent
commit
02493746e2
  1. 9
      fastapi/routing.py

9
fastapi/routing.py

@ -545,8 +545,13 @@ class APIRoute(routing.Route):
response_model = None
else:
response_model = return_annotation
if response_model is not None and not lenient_issubclass(response_model, BaseModel):
if (
response_model is None
or (
not lenient_issubclass(response_model, BaseModel)
and not dataclasses.is_dataclass(response_model)
)
):
inferred = infer_response_model_from_ast(endpoint)
if inferred:
response_model = inferred

Loading…
Cancel
Save