Home / Function/ _get_openapi_operation_parameters() — fastapi Function Reference

_get_openapi_operation_parameters() — fastapi Function Reference

Architecture documentation for the _get_openapi_operation_parameters() function in utils.py from the fastapi codebase.

Function python FastAPI Responses calls 4 called by 1

Entity Profile

Dependency Diagram

graph TD
  affeac09_7707_a8d9_d9a7_6ca9b7066460["_get_openapi_operation_parameters()"]
  0dcb823f_ea0d_bd04_752b_a3a3f875bba1["utils.py"]
  affeac09_7707_a8d9_d9a7_6ca9b7066460 -->|defined in| 0dcb823f_ea0d_bd04_752b_a3a3f875bba1
  200f313e_38b9_296f_f9aa_afdeacb6b8ad["get_openapi_path()"]
  200f313e_38b9_296f_f9aa_afdeacb6b8ad -->|calls| affeac09_7707_a8d9_d9a7_6ca9b7066460
  df2bd000_d29c_ac4b_5eca_426e3122a385["get_flat_dependant()"]
  affeac09_7707_a8d9_d9a7_6ca9b7066460 -->|calls| df2bd000_d29c_ac4b_5eca_426e3122a385
  c37f239e_d34d_5c2b_ce28_2b7463c61051["_get_flat_fields_from_params()"]
  affeac09_7707_a8d9_d9a7_6ca9b7066460 -->|calls| c37f239e_d34d_5c2b_ce28_2b7463c61051
  0f3cd5cf_3aea_6cfe_477e_4813f1243d25["get_validation_alias()"]
  affeac09_7707_a8d9_d9a7_6ca9b7066460 -->|calls| 0f3cd5cf_3aea_6cfe_477e_4813f1243d25
  1ac1bc37_1a47_e7e2_9156_ab0473094700["jsonable_encoder()"]
  affeac09_7707_a8d9_d9a7_6ca9b7066460 -->|calls| 1ac1bc37_1a47_e7e2_9156_ab0473094700
  style affeac09_7707_a8d9_d9a7_6ca9b7066460 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

fastapi/openapi/utils.py lines 108–178

def _get_openapi_operation_parameters(
    *,
    dependant: Dependant,
    model_name_map: ModelNameMap,
    field_mapping: dict[
        tuple[ModelField, Literal["validation", "serialization"]], dict[str, Any]
    ],
    separate_input_output_schemas: bool = True,
) -> list[dict[str, Any]]:
    parameters = []
    flat_dependant = get_flat_dependant(dependant, skip_repeats=True)
    path_params = _get_flat_fields_from_params(flat_dependant.path_params)
    query_params = _get_flat_fields_from_params(flat_dependant.query_params)
    header_params = _get_flat_fields_from_params(flat_dependant.header_params)
    cookie_params = _get_flat_fields_from_params(flat_dependant.cookie_params)
    parameter_groups = [
        (ParamTypes.path, path_params),
        (ParamTypes.query, query_params),
        (ParamTypes.header, header_params),
        (ParamTypes.cookie, cookie_params),
    ]
    default_convert_underscores = True
    if len(flat_dependant.header_params) == 1:
        first_field = flat_dependant.header_params[0]
        if lenient_issubclass(first_field.field_info.annotation, BaseModel):
            default_convert_underscores = getattr(
                first_field.field_info, "convert_underscores", True
            )
    for param_type, param_group in parameter_groups:
        for param in param_group:
            field_info = param.field_info
            # field_info = cast(Param, field_info)
            if not getattr(field_info, "include_in_schema", True):
                continue
            param_schema = get_schema_from_model_field(
                field=param,
                model_name_map=model_name_map,
                field_mapping=field_mapping,
                separate_input_output_schemas=separate_input_output_schemas,
            )
            name = get_validation_alias(param)
            convert_underscores = getattr(
                param.field_info,
                "convert_underscores",
                default_convert_underscores,
            )
            if (
                param_type == ParamTypes.header
                and name == param.name
                and convert_underscores
            ):
                name = param.name.replace("_", "-")

            parameter = {
                "name": name,
                "in": param_type.value,
                "required": param.field_info.is_required(),
                "schema": param_schema,
            }
            if field_info.description:
                parameter["description"] = field_info.description
            openapi_examples = getattr(field_info, "openapi_examples", None)
            example = getattr(field_info, "example", None)
            if openapi_examples:
                parameter["examples"] = jsonable_encoder(openapi_examples)
            elif example != Undefined:
                parameter["example"] = jsonable_encoder(example)
            if getattr(field_info, "deprecated", None):
                parameter["deprecated"] = True
            parameters.append(parameter)
    return parameters

Domain

Subdomains

Called By

Frequently Asked Questions

What does _get_openapi_operation_parameters() do?
_get_openapi_operation_parameters() is a function in the fastapi codebase, defined in fastapi/openapi/utils.py.
Where is _get_openapi_operation_parameters() defined?
_get_openapi_operation_parameters() is defined in fastapi/openapi/utils.py at line 108.
What does _get_openapi_operation_parameters() call?
_get_openapi_operation_parameters() calls 4 function(s): _get_flat_fields_from_params, get_flat_dependant, get_validation_alias, jsonable_encoder.
What calls _get_openapi_operation_parameters()?
_get_openapi_operation_parameters() is called by 1 function(s): get_openapi_path.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free