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 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

View File

@ -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)

View File

@ -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`