Browse Source

🔧 Keep description when endpoint depends schema

pull/4573/head
gyudoza 3 years ago
parent
commit
9a23243cc6
  1. 34
      fastapi/dependencies/utils.py

34
fastapi/dependencies/utils.py

@ -245,15 +245,31 @@ def is_scalar_sequence_field(field: ModelField) -> bool:
def get_typed_signature(call: Callable[..., Any]) -> inspect.Signature: def get_typed_signature(call: Callable[..., Any]) -> inspect.Signature:
signature = inspect.signature(call) signature = inspect.signature(call)
globalns = getattr(call, "__globals__", {}) globalns = getattr(call, "__globals__", {})
typed_params = [ if inspect.isclass(call):
inspect.Parameter( from fastapi import Query
name=param.name, parameters = {}
kind=param.kind, fields = getattr(call, '__fields__', {})
default=param.default, for param in fields:
annotation=get_typed_annotation(param, globalns), parameters[param] = dict((fields[param].field_info.__repr_args__()))
) typed_params = [
for param in signature.parameters.values() inspect.Parameter(
] name=param.name,
kind=param.kind,
default=Query(parameters[param.name].get("default"), description=parameters[param.name].get("description")),
annotation=get_typed_annotation(param, globalns),
)
for param in signature.parameters.values()
]
else:
typed_params = [
inspect.Parameter(
name=param.name,
kind=param.kind,
default=param.default,
annotation=get_typed_annotation(param, globalns),
)
for param in signature.parameters.values()
]
typed_signature = inspect.Signature(typed_params) typed_signature = inspect.Signature(typed_params)
return typed_signature return typed_signature

Loading…
Cancel
Save