Coverage for archdocs/integrations/fastapi.py: 100%
11 statements
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-09 14:41 +0000
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-09 14:41 +0000
1import functools
3import fastapi
4from starlette.requests import Request as StarletteRequest
5from starlette.responses import HTMLResponse as StarletteHtmlResponse
7from archdocs import page, settings
8from archdocs.integrations.common import _create_architecture_engine
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(page.render_architecture_page(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 )