""" 系统配置管理路由模块 提供系统配置项的读取和更新接口: - 按配置键名获取配置值 - 按配置键名更新配置值 URL 前缀:/api/configs 权限要求:当前未做登录校验(公开接口,生产环境建议加上鉴权) """ from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from backend.app.db import get_db_session from backend.app.schemas.common import success_payload from backend.app.schemas.configs import UpdateConfigRequest from backend.app.services.config_service import config_service router = APIRouter(prefix="/api/configs", tags=["configs"]) @router.get("/{config_key}") def get_config( config_key: str, # 配置项的唯一键名 session: Session = Depends(get_db_session), # 数据库会话 ) -> dict: """ 获取指定配置项 根据配置键名查询对应的配置值。 请求参数: config_key: 路径参数,配置项的唯一键名 返回值: 配置项的详细信息,包含键名、值、描述等 权限要求:无(公开接口) """ return success_payload(config_service.get_config(config_key, session)) @router.put("/{config_key}") def update_config( config_key: str, # 配置项的唯一键名 payload: UpdateConfigRequest, # 更新配置请求体,包含新的配置值 session: Session = Depends(get_db_session), # 数据库会话 ) -> dict: """ 更新指定配置项 根据配置键名更新对应的配置值。如果配置项不存在则返回错误。 请求参数: config_key: 路径参数,配置项的唯一键名 payload: UpdateConfigRequest 请求体,包含要更新的配置值 返回值: 更新后的配置项信息 权限要求:无(公开接口) """ return success_payload(config_service.update_config(config_key, payload.model_dump(), session))