diff --git a/fastapi/applications.py b/fastapi/applications.py index 05c7bd2be..fbf2b3c77 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( @@ -830,6 +831,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 @@ -1006,7 +1008,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: