@@ -28,6 +28,9 @@ def create_app(settings: Optional[Settings] = None) -> FastAPI:
2828 """FastAPI Application Factory."""
2929 settings = settings or Settings ()
3030
31+ #
32+ # Application
33+ #
3134 upstream_urls = [
3235 settings .upstream_url ,
3336 settings .oidc_discovery_internal_url or settings .oidc_discovery_url ,
@@ -45,20 +48,24 @@ def create_app(settings: Optional[Settings] = None) -> FastAPI:
4548 lifespan = lifespan ,
4649 )
4750
51+ #
52+ # Handlers (place catch-all proxy handler last)
53+ #
4854 if settings .healthz_prefix :
4955 app .include_router (
5056 HealthzHandler (upstream_url = str (settings .upstream_url )).router ,
5157 prefix = settings .healthz_prefix ,
5258 )
5359
54- proxy_handler = ReverseProxyHandler (upstream = str (settings .upstream_url ))
5560 app .add_api_route (
5661 "/{path:path}" ,
57- proxy_handler .stream ,
62+ ReverseProxyHandler ( upstream = str ( settings . upstream_url )) .stream ,
5863 methods = ["GET" , "POST" , "PUT" , "PATCH" , "DELETE" ],
5964 )
6065
61- # Add middleware in reverse order (last added = first to run)
66+ #
67+ # Middleware (order is important, last added = first to run)
68+ #
6269 if settings .openapi_spec_endpoint :
6370 app .add_middleware (
6471 OpenApiMiddleware ,
@@ -70,7 +77,9 @@ def create_app(settings: Optional[Settings] = None) -> FastAPI:
7077 )
7178
7279 if settings .items_filter :
73- app .add_middleware (ApplyCql2FilterMiddleware )
80+ app .add_middleware (
81+ ApplyCql2FilterMiddleware ,
82+ )
7483 app .add_middleware (
7584 BuildCql2FilterMiddleware ,
7685 items_filter = settings .items_filter (),
@@ -85,6 +94,8 @@ def create_app(settings: Optional[Settings] = None) -> FastAPI:
8594 oidc_config_internal_url = settings .oidc_discovery_internal_url ,
8695 )
8796
88- app .add_middleware (AddProcessTimeHeaderMiddleware )
97+ app .add_middleware (
98+ AddProcessTimeHeaderMiddleware ,
99+ )
89100
90101 return app
0 commit comments