寻迹(Financial Analyzer)API 概览
文档版本:2026-04-02
后端服务:finance-analyzer-backend(端口 3001)
前端应用:Financial_Analyzer(React + Vite,用户端)
一、架构概览
┌─────────────────────────────────────────────────────────────┐
│ Financial_Analyzer 前端 │
│ (React + Vite, port 5173) │
└─────────────────────┬───────────────────────────────────────┘
│ axios (baseURL: /api)
▼
┌─────────────────────────────────────────────────────────────┐
│ finance-analyzer-backend │
│ (Express, port 3001, SQLite) │
│ │
│ 路由: │
│ /api/auth/* — 认证、注册、登录、刷新Token │
│ /api/bills/* — 账单管理、成员管理、邀请 │
│ /api/transactions/* — 交易记录、CSV 导入 │
│ /api/apikeys/* — AI Key 管理、解析、跨账单共享 │
│ /api/ai/* — AI 对话、语音转写 │
└─────────────────────────────────────────────────────────────┘
Admin 后台(finance-admin-backend,端口 3002)通过 /api/admin/* 提供管理 API,与 Analyzer 前端无关。
二、数据库表一览
| 表名 |
说明 |
归属 |
users |
用户账号 |
auth |
refresh_tokens |
Refresh Token 存储 |
auth |
bills |
账单主表 |
bills |
bill_members |
账单成员与角色 |
bills |
bill_invitations |
邀请记录(24h 有效期) |
bills |
categories |
分类(per bill) |
bills |
transactions |
交易流水(per bill) |
transactions |
bill_csv_uploads |
CSV 上传元数据(per bill) |
transactions |
accounts |
账户表(余额管理) |
- |
recurring |
定期账单 |
- |
budgets |
预算 |
- |
budget_alerts |
预算预警 |
- |
attachments |
附件 |
- |
notifications |
通知 |
- |
api_keys |
AI API Keys(per bill, per user) |
apikeys |
user_provider_order |
用户自定义 Key 排序 |
apikeys |
api_logs |
AI API 调用日志 |
- |
注:accounts、recurring、budgets、budget_alerts、attachments、notifications、api_logs 等表的完整 CRUD API 尚未在 Analyzer 前端页面中实现(对应功能可能由 Admin 后台管理,或未开发)。
三、API 路由清单
3.1 认证 /api/auth
| 方法 |
路径 |
说明 |
文档 |
| GET |
/register-captcha |
获取注册图形验证码 |
选填 未文档化 |
| GET |
/login-captcha |
获取登录图形验证码 |
选填 未文档化 |
| POST |
/send-register-email |
发送注册邮箱验证码 |
必填 01-auth.md |
| POST |
/send-reset-email |
发送密码重置邮件 |
必填 01-auth.md |
| POST |
/reset-password |
重置密码(含 Token) |
必填 01-auth.md |
| POST |
/register |
注册账号 |
必填 01-auth.md |
| POST |
/login |
用户登录 |
必填 01-auth.md |
| POST |
/refresh |
刷新 Access Token |
必填 01-auth.md |
| POST |
/logout |
登出 |
必填 01-auth.md |
| GET |
/me |
获取当前用户信息 |
必填 01-auth.md |
| PUT |
/me/profile |
更新用户资料 |
必填 01-auth.md |
| POST |
/guest-login |
游客登录 |
必填 01-auth.md |
| POST |
/upgrade-guest |
升级游客为正式账号 |
必填 01-auth.md |
| POST |
/me/onboard-done |
标记新手引导完成 |
必填 01-auth.md |
| POST |
/dev/reset-ip |
重置 IP 限制(developer 专用) |
必填 01-auth.md |
3.2 账单 /api/bills
| 方法 |
路径 |
说明 |
文档 |
| GET |
/ |
获取用户所有账单 |
必填 02-bills.md |
| GET |
/:id |
获取账单详情(含成员、分类) |
必填 02-bills.md |
| POST |
/ |
创建新账单 |
必填 02-bills.md |
| PUT |
/:id |
更新账单(名称、描述) |
必填 02-bills.md |
| DELETE |
/:id |
删除账单 |
必填 02-bills.md |
| GET |
/:id/members |
获取账单成员列表 |
必填 02-bills.md |
| PUT |
/:id/members/:memberId |
修改成员角色 |
必填 02-bills.md |
| DELETE |
/:id/members/:memberId |
移除账单成员 |
必填 02-bills.md |
| PUT |
/:id/prompt |
更新用户在账单的 AI Prompt |
必填 02-bills.md |
| GET |
/:id/categories |
获取账单分类列表 |
必填 02-bills.md |
| POST |
/:id/invite |
邀请成员加入账单 |
必填 02-bills.md |
3.3 交易 /api/transactions
| 方法 |
路径 |
说明 |
文档 |
| GET |
/:billId |
获取账单所有交易记录 |
必填 03-transactions.md |
| POST |
/:billId/upload |
上传 CSV(覆盖式导入) |
必填 03-transactions.md |
3.4 API Keys /api/apikeys
| 方法 |
路径 |
说明 |
文档 |
| GET |
/user |
获取用户在账单下的 Key 列表 |
必填 04-apikeys.md |
| POST |
/verify/user |
验证 Key 有效性 |
必填 04-apikeys.md |
| PUT |
/user |
创建或更新 Key |
必填 04-apikeys.md |
| DELETE |
/user/:provider |
删除 Key |
必填 04-apikeys.md |
| GET |
/resolve/:billId |
获取账单最优 Key 列表 |
必填 04-apikeys.md |
| GET |
/resolve-all/:billId |
获取账单所有可用 Key |
必填 04-apikeys.md |
| GET |
/suggestions |
获取跨账单 Key 导入建议 |
必填 04-apikeys.md |
| POST |
/import |
跨账单导入 Key 配置 |
必填 04-apikeys.md |
| PATCH |
/user/share |
切换 Key 共享状态 |
必填 04-apikeys.md |
| PATCH |
/order/user |
批量更新 Key 排序 |
必填 04-apikeys.md |
3.5 AI /api/ai
| 方法 |
路径 |
说明 |
文档 |
| POST |
/transcribe |
音频转写(Whisper) |
必填 05-ai.md |
| POST |
/voice-chat |
语音直发对话 |
必填 05-ai.md |
| POST |
/chat |
文本对话(流式 SSE) |
必填 05-ai.md |
| POST |
/chat-simple |
文本对话(非流式) |
必填 05-ai.md |
四、前端页面与 API 映射
| 前端页面 |
路由 |
核心 API 调用 |
数据来源 |
| LoginPage |
/login |
POST /auth/login, POST /auth/register |
DataContext (auth) |
| HomePage |
/ |
GET /bills, GET /bills/:id, GET /transactions/:billId |
DataContext |
| BillPage |
/bill |
账单管理全功能:CRUD /bills, /bills/:id/members, POST /transactions/:billId/upload |
DataContext |
| SettingsPage |
/settings |
/apikeys/* (Key 管理) |
直接调用 api |
| ApiGuidePage |
/api-guide |
无后端调用(纯前端代码示例生成) |
- |
| DeveloperPage |
/dev |
/dev/perf-pulse(仅开发者模式可见) |
直接调用 api |
注:DataContext 是全局状态管理器,在应用启动时从 /api/auth/me 获取用户信息,页面切换时通过 selectBill(billId) 触发数据加载。
五、文档完成度
| 文档 |
状态 |
备注 |
| 00-overview.md(本文) |
🆕 新增 |
API 全局索引 |
| 01-auth.md |
必填 完整 |
覆盖全部 auth 路由 |
| 02-bills.md |
必填 完整 |
bills + members + invitations + categories |
| 03-transactions.md |
必填 完整 |
transactions + CSV upload + bill_csv_uploads |
| 04-apikeys.md |
必填 完整 |
全部 8 个端点 + 表结构 |
| 05-ai.md |
必填 完整 |
chat + transcribe + voice-chat |
未文档化端点(minor,Admin 或内部使用):
GET /auth/register-captcha — 注册图形验证码(纯前端 captcha 集成)
GET /auth/login-captcha — 登录图形验证码
六、待补充功能(未在 Analyzer 前端实现)
以下后端表有基础路由,但前端无对应页面:
| 功能 |
说明 |
建议 |
| 账户管理(accounts) |
余额账户增删改 |
需前端开发 |
| 定期账单(recurring) |
每月固定收支 |
需前端开发 |
| 预算(budgets) |
月度预算设置 |
需前端开发 |
| 预算预警(budget_alerts) |
阈值触发提醒 |
需前端开发 |
| 附件(attachments) |
上传图片等 |
需前端开发 |
| 通知(notifications) |
系统通知列表 |
需前端开发 |
| AI 日志(api_logs) |
API 调用记录查询 |
需前端开发 |
这些功能可能由 Admin 后台(finance-admin)管理,不在用户端(Analyzer)暴露。