MCPcopy
hub / github.com/fastapi/fastapi / get_fields_from_routes

Function get_fields_from_routes

fastapi/openapi/utils.py:489–520  ·  view source on GitHub ↗
(
    routes: Sequence[BaseRoute | routing.RouteContext],
)

Source from the content-addressed store, hash-verified

487
488
489def get_fields_from_routes(
490 routes: Sequence[BaseRoute | routing.RouteContext],
491) -> list[ModelField]:
492 body_fields_from_routes: list[ModelField] = []
493 responses_from_routes: list[ModelField] = []
494 request_fields_from_routes: list[ModelField] = []
495 callback_flat_models: list[ModelField] = []
496 for route_context in routing.iter_route_contexts(routes):
497 api_route = _get_api_route_for_openapi(route_context)
498 if api_route is None:
499 continue
500 if api_route.include_in_schema:
501 if api_route.body_field:
502 assert isinstance(api_route.body_field, ModelField), (
503 "A request body must be a Pydantic Field"
504 )
505 body_fields_from_routes.append(api_route.body_field)
506 if api_route.response_field:
507 responses_from_routes.append(api_route.response_field)
508 if api_route.response_fields:
509 responses_from_routes.extend(api_route.response_fields.values())
510 if api_route.stream_item_field:
511 responses_from_routes.append(api_route.stream_item_field)
512 if api_route.callbacks:
513 callback_flat_models.extend(get_fields_from_routes(api_route.callbacks))
514 params = get_flat_params(api_route.dependant)
515 request_fields_from_routes.extend(params)
516
517 flat_models = callback_flat_models + list(
518 body_fields_from_routes + responses_from_routes + request_fields_from_routes
519 )
520 return flat_models
521
522
523def get_openapi(

Callers 1

get_openapiFunction · 0.85

Calls 2

get_flat_paramsFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…