DataNexus 后端

企业AI统一数据网关平台后端服务,提供 MCP 协议 + HTTP REST API 双出口能力。

技术栈

  • Python 3.11+
  • FastAPI + Uvicorn
  • SQLAlchemy 2.0 (async) + PostgreSQL
  • 官方 MCP Python SDK
  • Pydantic V2

环境管理

本项目使用 uv 管理 Python 环境和依赖。

初始化环境

cd backend
uv venv
uv pip install -e ".[dev]"

运行服务

uv run uvicorn app.main:app --reload --port 8000

运行测试

uv run pytest -v

项目结构

backend/
├── app/
│   ├── main.py          # FastAPI 入口
│   ├── core/            # 核心配置(settings、数据库、安全)
│   ├── models/          # SQLAlchemy 数据模型
│   ├── schemas/         # Pydantic 请求/响应模型
│   ├── services/        # 核心业务逻辑(双出口共用)
│   ├── api/             # HTTP REST API 路由
│   ├── mcp/             # MCP 协议出口
│   ├── datasource/      # 多数据源连接池管理
│   └── middleware/      # 中间件(限流等)
├── tests/               # 测试
├── pyproject.toml       # 项目配置
└── Dockerfile

API 端点

路径 说明
GET /health 健康检查
POST /api/v1/auth/login 用户登录
GET /api/v1/datasources 数据源列表
POST /api/v1/datasources 创建数据源
GET /api/v1/metadata/tables/{id} 获取表列表
GET /api/v1/metadata/columns/{id} 获取字段列表
POST /api/v1/query/execute 执行SQL查询
GET /api/v1/audit/logs 审计日志查询

MCP 工具

工具名 说明
get_database_schema 获取数据库元数据
query_database 安全SQL查询(仅SELECT)
call_custom_api 调用封装的内部API

环境变量

参考 .env.example 配置 .env 文件。