fixbug: #1
This commit is contained in:
parent
b5bf2c21b1
commit
60d07a477a
@ -51,7 +51,12 @@ def get_system_info():
|
||||
|
||||
|
||||
def load_routers(
|
||||
app, package_path: str = "router", router_name: str = "router", is_init=False
|
||||
app,
|
||||
package_path: str = "router",
|
||||
router_name: str = "router",
|
||||
is_init=False,
|
||||
no_depends="common",
|
||||
depends: list = None,
|
||||
):
|
||||
"""
|
||||
自动注册路由
|
||||
@ -59,6 +64,8 @@ def load_routers(
|
||||
:param package_path: 路由包所在路径,默认相对路径router包
|
||||
:param router_name: APIRouter实例名称,需所有实例统一,默认router
|
||||
:param is_init: 是否在包中的__init__.py中导入了所有APIRouter实例,默认否
|
||||
:param no_depends: 不需要依赖注入的模块(py文件)名,默认common
|
||||
:param depends: 依赖注入列表 默认为None
|
||||
:return: 默认None
|
||||
"""
|
||||
|
||||
@ -66,9 +73,15 @@ def load_routers(
|
||||
"""注册路由,module_obj: 模块对象"""
|
||||
if hasattr(module_obj, router_name):
|
||||
router_obj = getattr(module_obj, router_name)
|
||||
app.include_router(router_obj)
|
||||
if no_depends in module_obj.__name__:
|
||||
kwargs = dict(router=router_obj)
|
||||
else:
|
||||
kwargs = dict(router=router_obj, dependencies=depends)
|
||||
app.include_router(**kwargs)
|
||||
|
||||
logger.info("开始扫描路由。")
|
||||
if depends is None:
|
||||
depends = []
|
||||
if is_init:
|
||||
# 1. init 导入了其他自文件包时
|
||||
for _, module in inspect.getmembers(
|
||||
|
@ -1,9 +1,9 @@
|
||||
from fastapi import FastAPI
|
||||
from fastapi import Depends, FastAPI
|
||||
|
||||
from core.events import close_orm, init_orm
|
||||
from core.exceptions import exception_handlers
|
||||
from core.log import logger
|
||||
from core.middleware import middlewares
|
||||
from core.security import check_permissions
|
||||
from core.utils import load_routers
|
||||
|
||||
app = FastAPI(
|
||||
@ -13,7 +13,9 @@ app = FastAPI(
|
||||
exception_handlers=exception_handlers,
|
||||
)
|
||||
|
||||
load_routers(app, "controller")
|
||||
load_routers(
|
||||
app, "controller", no_depends="common", depends=[Depends(check_permissions)]
|
||||
)
|
||||
|
||||
if __name__ == "__main__":
|
||||
import uvicorn
|
||||
|
Loading…
Reference in New Issue
Block a user