dingdanquanliucheng/backend/app/api/configs.py
taiyi 9b32afdbb4 为后端全部 86 个 Python 文件添加中文注释
覆盖所有模块:
- api 层:17 个路由文件,每个接口标注用途、参数、返回值、权限
- services 层:18 个服务文件,每个方法标注作用、参数、返回值、调用方
- repositories 层:13 个仓储文件,每个方法标注查询逻辑和被调用方
- schemas 层:11 个请求/响应体文件,每个字段标注业务含义
- core 层:config、security、exceptions、responses、error_codes
- models 层:19 个 ORM 模型类,每个表标注业务含义和关联关系
- scripts:bootstrap_data、smoke_check
- migrations:env.py 和版本迁移文件

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 07:23:33 +08:00

65 lines
1.9 KiB
Python

"""
系统配置管理路由模块
提供系统配置项的读取和更新接口:
- 按配置键名获取配置值
- 按配置键名更新配置值
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))