Coverage for archdocs/integrations/fastapi.py: 100%
11 statements
« prev ^ index » next coverage.py v7.15.3, created at 2026-08-03 00:00 +0000
« prev ^ index » next coverage.py v7.15.3, created at 2026-08-03 00:00 +0000
1import functools
3import fastapi
4from starlette.requests import Request as StarletteRequest
5from starlette.responses import HTMLResponse as StarletteHtmlResponse
7from archdocs import settings
8from archdocs.integrations.common import _create_architecture_engine, _generate_architecture_html
9from archdocs.main import ArchitectureParserAndRenderer, SettingsForArchdocs
12async def _handle_fastapi_arch_doc_route(
13 _incoming_request: StarletteRequest,
14 arch_engine: ArchitectureParserAndRenderer,
15) -> StarletteHtmlResponse:
16 return StarletteHtmlResponse(_generate_architecture_html(arch_engine))
19def add_architecture_doc_routes(
20 fastapi_app: fastapi.FastAPI,
21 *,
22 route_path: str = settings.DEFAULT_PATH,
23 arch_settings: SettingsForArchdocs | None = None,
24) -> None:
25 fastapi_app.add_api_route(
26 route_path,
27 functools.partial(
28 _handle_fastapi_arch_doc_route,
29 arch_engine=_create_architecture_engine(arch_settings),
30 ),
31 )