Browse Source

fix: bugfix/openapi/header_params_model

pull/13100/head
boyi.zhang 4 months ago
parent
commit
e6bc6ecf30
  1. 15
      fastapi/dependencies/utils.py
  2. 5
      fastapi/openapi/utils.py

15
fastapi/dependencies/utils.py

@ -713,14 +713,21 @@ def _validate_value_with_model_field(
return v_, []
def _get_multidict_value(
field: ModelField, values: Mapping[str, Any], alias: Union[str, None] = None
) -> Any:
alias = alias or field.alias
def _get_value(field: ModelField, values: Mapping[str, Any], alias: Union[str, None] = None) -> Any:
if is_sequence_field(field) and isinstance(values, (ImmutableMultiDict, Headers)):
value = values.getlist(alias)
else:
value = values.get(alias, None)
return value
def _get_multidict_value(
field: ModelField, values: Mapping[str, Any], alias: Union[str, None] = None
) -> Any:
alias = alias or field.alias
value = _get_value(field, values, alias)
if value is None and alias is not None:
value = _get_value(field, values, field.alias)
if (
value is None
or (

5
fastapi/openapi/utils.py

@ -126,8 +126,11 @@ def _get_openapi_operation_parameters(
field_mapping=field_mapping,
separate_input_output_schemas=separate_input_output_schemas,
)
param_name = param.alias
if param_type == ParamTypes.header and param_name:
param_name = param.alias.replace("_", "-")
parameter = {
"name": param.alias,
"name": param_name,
"in": param_type.value,
"required": param.required,
"schema": param_schema,

Loading…
Cancel
Save