Feature: 支持给 FastAPIQuart 传递额外的参数 (#1543)

This commit is contained in:
Akirami 2023-01-04 12:58:26 +08:00 committed by GitHub
parent a9125cd696
commit 006b9dd816
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 3 deletions

View File

@ -13,7 +13,7 @@ FrontMatter:
import logging import logging
import contextlib import contextlib
from functools import wraps 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 import uvicorn
from pydantic import BaseSettings from pydantic import BaseSettings
@ -65,6 +65,8 @@ class Config(BaseSettings):
"""要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值""" """要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值"""
fastapi_reload_excludes: Optional[List[str]] = None fastapi_reload_excludes: Optional[List[str]] = None
"""不要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值""" """不要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值"""
fastapi_extra: Dict[str, Any] = {}
"""传递给 `FastAPI` 的其他参数。"""
class Config: class Config:
extra = "ignore" extra = "ignore"
@ -82,6 +84,7 @@ class Driver(ReverseDriver):
openapi_url=self.fastapi_config.fastapi_openapi_url, openapi_url=self.fastapi_config.fastapi_openapi_url,
docs_url=self.fastapi_config.fastapi_docs_url, docs_url=self.fastapi_config.fastapi_docs_url,
redoc_url=self.fastapi_config.fastapi_redoc_url, redoc_url=self.fastapi_config.fastapi_redoc_url,
**self.fastapi_config.fastapi_extra,
) )
@property @property

View File

@ -17,7 +17,7 @@ FrontMatter:
import asyncio import asyncio
from functools import wraps 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 import uvicorn
from pydantic import BaseSettings from pydantic import BaseSettings
@ -69,6 +69,8 @@ class Config(BaseSettings):
"""要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值""" """要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值"""
quart_reload_excludes: Optional[List[str]] = None quart_reload_excludes: Optional[List[str]] = None
"""不要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值""" """不要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值"""
quart_extra: Dict[str, Any] = {}
"""传递给 `Quart` 的其他参数。"""
class Config: class Config:
extra = "ignore" extra = "ignore"
@ -82,7 +84,9 @@ class Driver(ReverseDriver):
self.quart_config = Config(**config.dict()) 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 @property
@overrides(ReverseDriver) @overrides(ReverseDriver)

View File

@ -146,6 +146,12 @@ nonebot.run(app="bot:app")
默认值:`None` 默认值:`None`
说明:不要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值 说明:不要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值
##### `fastapi_extra`
类型:`Dist[str, Any]`
默认值:`{}`
说明:传递给 `FastAPI` 的其他参数
### Quart ### Quart
类型:`ReverseDriver` 类型:`ReverseDriver`
@ -199,6 +205,12 @@ nonebot.run(app="bot:app")
默认值:`None` 默认值:`None`
说明:不要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值 说明:不要监听的文件列表,支持 glob pattern默认为 uvicorn 默认值
##### `quart_extra`
类型:`Dist[str, Any]`
默认值:`{}`
说明:传递给 `Quart` 的其他参数
### HTTPX ### HTTPX
类型:`ForwardDriver` 类型:`ForwardDriver`