refactor: inject api prefix into router startup

This commit is contained in:
jxxghp
2026-08-23 00:54:01 +08:00
parent 4e895c6c67
commit f26bde2250
4 changed files with 18 additions and 9 deletions
+1 -1
View File
@@ -197,7 +197,7 @@ def build_lifecycle_components(app: FastAPI) -> tuple[LifecycleComponent, ...]:
LifecycleComponent(
name="路由",
dependencies=("数据库连接预算",),
start=lambda: init_routers(app),
start=lambda: init_routers(app, settings.API_V1_STR),
start_order=60,
start_timeout_seconds=30,
),
+5 -5
View File
@@ -1,11 +1,11 @@
from fastapi import FastAPI
from app.runtime.config import settings
def init_routers(app: FastAPI):
def init_routers(app: FastAPI, api_prefix: str = "/api/v1"):
"""
初始化路由
:param app: 需要挂载路由的 FastAPI 应用
:param api_prefix: v1 API 根路径,由启动组合根传入
"""
from app.api.router_specs import API_V1_ROUTER_SPECS
from app.api.servarr import arr_router
@@ -14,7 +14,7 @@ def init_routers(app: FastAPI):
for spec in API_V1_ROUTER_SPECS:
app.include_router(
spec.router,
prefix=f"{settings.API_V1_STR}{spec.prefix}",
prefix=f"{api_prefix}{spec.prefix}",
tags=list(spec.tags),
)
# Radarr、Sonarr路由