mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-11-24 09:05:04 +08:00
⚗️ new fastapi config settings
This commit is contained in:
parent
9d047daef5
commit
a1d801ba14
@ -14,18 +14,28 @@ import logging
|
|||||||
from typing import Optional, Callable
|
from typing import Optional, Callable
|
||||||
|
|
||||||
import uvicorn
|
import uvicorn
|
||||||
|
from pydantic import BaseSettings
|
||||||
from fastapi.responses import Response
|
from fastapi.responses import Response
|
||||||
from fastapi import Body, status, Request, FastAPI, HTTPException
|
from fastapi import Body, status, Request, FastAPI, HTTPException
|
||||||
from starlette.websockets import WebSocketDisconnect, WebSocket as FastAPIWebSocket
|
from starlette.websockets import WebSocketDisconnect, WebSocket as FastAPIWebSocket
|
||||||
|
|
||||||
from nonebot.log import logger
|
from nonebot.log import logger
|
||||||
from nonebot.typing import overrides
|
from nonebot.typing import overrides
|
||||||
from nonebot.config import Env, Config
|
|
||||||
from nonebot.utils import DataclassEncoder
|
from nonebot.utils import DataclassEncoder
|
||||||
from nonebot.exception import RequestDenied
|
from nonebot.exception import RequestDenied
|
||||||
|
from nonebot.config import Env, Config as NoneBotConfig
|
||||||
from nonebot.drivers import Driver as BaseDriver, WebSocket as BaseWebSocket
|
from nonebot.drivers import Driver as BaseDriver, WebSocket as BaseWebSocket
|
||||||
|
|
||||||
|
|
||||||
|
class Config(BaseSettings):
|
||||||
|
fastapi_openapi_url: Optional[str] = None
|
||||||
|
fastapi_docs_url: Optional[str] = None
|
||||||
|
fastapi_redoc_url: Optional[str] = None
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
extra = "ignore"
|
||||||
|
|
||||||
|
|
||||||
class Driver(BaseDriver):
|
class Driver(BaseDriver):
|
||||||
"""
|
"""
|
||||||
FastAPI 驱动框架
|
FastAPI 驱动框架
|
||||||
@ -38,14 +48,16 @@ class Driver(BaseDriver):
|
|||||||
* ``/{adapter name}/ws/``: WebSocket 上报
|
* ``/{adapter name}/ws/``: WebSocket 上报
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, env: Env, config: Config):
|
def __init__(self, env: Env, config: NoneBotConfig):
|
||||||
super().__init__(env, config)
|
super().__init__(env, config)
|
||||||
|
|
||||||
|
self.fastapi_config = Config(**config.dict())
|
||||||
|
|
||||||
self._server_app = FastAPI(
|
self._server_app = FastAPI(
|
||||||
debug=config.debug,
|
debug=config.debug,
|
||||||
openapi_url=None,
|
openapi_url=self.fastapi_config.fastapi_openapi_url,
|
||||||
docs_url=None,
|
docs_url=self.fastapi_config.fastapi_docs_url,
|
||||||
redoc_url=None,
|
redoc_url=self.fastapi_config.fastapi_redoc_url,
|
||||||
)
|
)
|
||||||
|
|
||||||
self._server_app.post("/{adapter}/")(self._handle_http)
|
self._server_app.post("/{adapter}/")(self._handle_http)
|
||||||
|
Loading…
Reference in New Issue
Block a user