diff --git a/fastapi/applications.py b/fastapi/applications.py index 340cabfc29..1c37f992fa 100644 --- a/fastapi/applications.py +++ b/fastapi/applications.py @@ -285,6 +285,7 @@ class FastAPI(Starlette): """ ), ] = None, + openapi_response_class: Type[JSONResponse] = JSONResponse, servers: Annotated[ Optional[list[dict[str, Union[str, Any]]]], Doc( @@ -864,6 +865,7 @@ class FastAPI(Starlette): self.license_info = license_info self.openapi_url = openapi_url self.openapi_tags = openapi_tags + self.openapi_response_class = openapi_response_class self.root_path_in_servers = root_path_in_servers self.docs_url = docs_url self.redoc_url = redoc_url @@ -1090,7 +1092,7 @@ class FastAPI(Starlette): if root_path and self.root_path_in_servers: self.servers.insert(0, {"url": root_path}) server_urls.add(root_path) - return JSONResponse(self.openapi()) + return self.openapi_response_class(self.openapi()) self.add_route(self.openapi_url, openapi, include_in_schema=False) if self.openapi_url and self.docs_url: