diff --git a/nonebot/drivers/fastapi.py b/nonebot/drivers/fastapi.py index a9d6ef3b..7e9a968c 100644 --- a/nonebot/drivers/fastapi.py +++ b/nonebot/drivers/fastapi.py @@ -13,7 +13,7 @@ FrontMatter: import logging import contextlib from functools import wraps -from typing import Any, List, Tuple, Union, Callable, Optional +from typing import Any, Dict, List, Tuple, Union, Callable, Optional import uvicorn from pydantic import BaseSettings @@ -65,6 +65,8 @@ class Config(BaseSettings): """要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值""" fastapi_reload_excludes: Optional[List[str]] = None """不要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值""" + fastapi_extra: Dict[str, Any] = {} + """传递给 `FastAPI` 的其他参数。""" class Config: extra = "ignore" @@ -82,6 +84,7 @@ class Driver(ReverseDriver): openapi_url=self.fastapi_config.fastapi_openapi_url, docs_url=self.fastapi_config.fastapi_docs_url, redoc_url=self.fastapi_config.fastapi_redoc_url, + **self.fastapi_config.fastapi_extra, ) @property diff --git a/nonebot/drivers/quart.py b/nonebot/drivers/quart.py index bb02522b..0ad0b1b8 100644 --- a/nonebot/drivers/quart.py +++ b/nonebot/drivers/quart.py @@ -17,7 +17,7 @@ FrontMatter: import asyncio from functools import wraps -from typing import List, Tuple, Union, TypeVar, Callable, Optional, Coroutine +from typing import Any, Dict, List, Tuple, Union, TypeVar, Callable, Optional, Coroutine import uvicorn from pydantic import BaseSettings @@ -69,6 +69,8 @@ class Config(BaseSettings): """要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值""" quart_reload_excludes: Optional[List[str]] = None """不要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值""" + quart_extra: Dict[str, Any] = {} + """传递给 `Quart` 的其他参数。""" class Config: extra = "ignore" @@ -82,7 +84,9 @@ class Driver(ReverseDriver): self.quart_config = Config(**config.dict()) - self._server_app = Quart(self.__class__.__qualname__) + self._server_app = Quart( + self.__class__.__qualname__, **self.quart_config.quart_extra + ) @property @overrides(ReverseDriver) diff --git a/website/docs/tutorial/choose-driver.md b/website/docs/tutorial/choose-driver.md index 955ccfb2..914cb698 100644 --- a/website/docs/tutorial/choose-driver.md +++ b/website/docs/tutorial/choose-driver.md @@ -146,6 +146,12 @@ nonebot.run(app="bot:app") 默认值:`None` 说明:不要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值 +##### `fastapi_extra` + +类型:`Dist[str, Any]` +默认值:`{}` +说明:传递给 `FastAPI` 的其他参数 + ### Quart 类型:`ReverseDriver` @@ -199,6 +205,12 @@ nonebot.run(app="bot:app") 默认值:`None` 说明:不要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值 +##### `quart_extra` + +类型:`Dist[str, Any]` +默认值:`{}` +说明:传递给 `Quart` 的其他参数 + ### HTTPX 类型:`ForwardDriver`