diff --git a/reflex/app.py b/reflex/app.py index 96556e2af7c..2e1d998ff6f 100644 --- a/reflex/app.py +++ b/reflex/app.py @@ -32,7 +32,6 @@ from starlette.requests import ClientDisconnect, Request from starlette.responses import JSONResponse, Response, StreamingResponse from starlette.staticfiles import StaticFiles -from typing_extensions import deprecated from reflex import constants from reflex.admin import AdminDash @@ -394,7 +393,7 @@ class App(MiddlewareMixin, LifespanMixin): _stateful_pages: dict[str, None] = dataclasses.field(default_factory=dict) # The backend API object. - _api: Starlette | None = None + _api: FastAPI | None = None # The state class to use for the app. _state: type[BaseState] | None = None @@ -437,26 +436,19 @@ class App(MiddlewareMixin, LifespanMixin): | None ) = None - # FastAPI app for compatibility with FastAPI. - _cached_fastapi_app: FastAPI | None = None - @property - @deprecated("Use `api_transformer=your_fastapi_app` instead.") def api(self) -> FastAPI: """Get the backend api. Returns: The backend api. + + Raises: + ValueError: If the app has not been initialized. """ - if self._cached_fastapi_app is None: - self._cached_fastapi_app = FastAPI() - console.deprecate( - feature_name="App.api", - reason="Set `api_transformer=your_fastapi_app` instead.", - deprecation_version="0.7.9", - removal_version="0.8.0", - ) - return self._cached_fastapi_app + if self._api is None: + raise ValueError("The app has not been initialized.") + return self._api @property def event_namespace(self) -> EventNamespace | None: @@ -488,7 +480,7 @@ def __post_init__(self): set_breakpoints(self.style.pop("breakpoints")) # Set up the API. - self._api = Starlette(lifespan=self._run_lifespan_tasks) + self._api = FastAPI(lifespan=self._run_lifespan_tasks) App._add_cors(self._api) self._add_default_endpoints() @@ -629,12 +621,8 @@ def __call__(self) -> ASGIApp: if not self._api: raise ValueError("The app has not been initialized.") - if self._cached_fastapi_app is not None: - asgi_app = self._cached_fastapi_app - asgi_app.mount("", self._api) - App._add_cors(asgi_app) - else: - asgi_app = self._api + + asgi_app = self._api if self.api_transformer is not None: api_transformers: Sequence[Starlette | Callable[[ASGIApp], ASGIApp]] = (